當前位置: 首頁>>代碼示例>>Java>>正文


Java Configuration.getTypeHandlerRegistry方法代碼示例

本文整理匯總了Java中org.apache.ibatis.session.Configuration.getTypeHandlerRegistry方法的典型用法代碼示例。如果您正苦於以下問題:Java Configuration.getTypeHandlerRegistry方法的具體用法?Java Configuration.getTypeHandlerRegistry怎麽用?Java Configuration.getTypeHandlerRegistry使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.apache.ibatis.session.Configuration的用法示例。


在下文中一共展示了Configuration.getTypeHandlerRegistry方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: setParameters

import org.apache.ibatis.session.Configuration; //導入方法依賴的package包/類
/**
 * 對SQL參數(?)設值,參考org.apache.ibatis.executor.parameter.
 * DefaultParameterHandler
 * 
 * @param ps
 *            表示預編譯的 SQL 語句的對象。
 * @param mappedStatement
 *            MappedStatement
 * @param boundSql
 *            SQL
 * @param parameterObject
 *            參數對象
 * @throws java.sql.SQLException
 *             數據庫異常
 */
public static void setParameters(PreparedStatement ps,
		MappedStatement mappedStatement, BoundSql boundSql,
		Object parameterObject) throws SQLException {
	ErrorContext.instance().activity("setting parameters")
			.object(mappedStatement.getParameterMap().getId());
	List<ParameterMapping> parameterMappings = boundSql
			.getParameterMappings();
	if (null != parameterMappings) {
		Configuration configuration = mappedStatement.getConfiguration();
		TypeHandlerRegistry typeHandlerRegistry = configuration
				.getTypeHandlerRegistry();
		MetaObject metaObject = parameterObject == null ? null
				: configuration.newMetaObject(parameterObject);
		for (int i = 0; i < parameterMappings.size(); i++) {
			ParameterMapping parameterMapping = parameterMappings.get(i);
			if (parameterMapping.getMode() != ParameterMode.OUT) {
				Object value;
				String propertyName = parameterMapping.getProperty();
				PropertyTokenizer prop = new PropertyTokenizer(propertyName);
				if (null == parameterObject) {
					value = null;
				} else if (typeHandlerRegistry
						.hasTypeHandler(parameterObject.getClass())) {
					value = parameterObject;
				} else if (boundSql.hasAdditionalParameter(propertyName)) {
					value = boundSql.getAdditionalParameter(propertyName);
				} else if (propertyName
						.startsWith(ForEachSqlNode.ITEM_PREFIX)
						&& boundSql.hasAdditionalParameter(prop.getName())) {
					value = boundSql.getAdditionalParameter(prop.getName());
					if (null != value) {
						value = configuration.newMetaObject(value)
								.getValue(
										propertyName.substring(prop
												.getName().length()));
					}
				} else {
					value = metaObject == null ? null : metaObject
							.getValue(propertyName);
				}
				TypeHandler typeHandler = parameterMapping.getTypeHandler();
				if (null == typeHandler) {
					throw new ExecutorException(
							"There was no TypeHandler found for parameter "
									+ propertyName + " of statement "
									+ mappedStatement.getId());
				}
				typeHandler.setParameter(ps, i + 1, value,
						parameterMapping.getJdbcType());
			}
		}
	}
}
 
開發者ID:jiangzongyao,項目名稱:kettle_support_kettle8.0,代碼行數:69,代碼來源:BaseParameter.java


注:本文中的org.apache.ibatis.session.Configuration.getTypeHandlerRegistry方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。