2014-09-19 77 views
0

我在春天使用mybatis。 我想存储与int值枚举类型(称为“序”)在mysql.There是MyBatis的一个简单的方法:如何在Spring的xml中使用'EnumOrdinalTypeHandler'和mybatis的typeHandler?

<!-- mybatis-config.xml --> 
<typeHandlers> 
<typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler"  javaType="com.stackoverflow.MyEnumType"/> 
</typeHandlers> 

所以当EXCUTE选择或插入SQL,自动映射器会自动使用EnumOrdinalTypeHandler。

我的问题是:

1:如何在Spring的context.xml中使用这样的或其他任何方式:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
    <property name="typeHandlers"> 
    ... 
    </property> 
</bean> 

2:我怎样才能为所有的枚举类型用更少的代码如'component-scan''MapperScannerConfigurer',不需要列出每个枚举类型?

回答

3

1.设置你的mybatis-config.xml位置通过:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="configLocation" value="mybatis-config.xml" /> 
</bean> 

2.如果您使用Java的配置,尽量使用循环:

TypeHandlerRegistry typeHandlerRegistry = sqlSessionFactory.getObject().getConfiguration().getTypeHandlerRegistry(); 
for (Class<?> cls: EnumClassArrays) { 
    typeHandlerRegistry.register(cls, new EnumOrdinalTypeHandler<>(cls)) 
} 
相关问题