gpt4 book ai didi

java - 如何在Spring的xml中使用 'EnumOrdinalTypeHandler'和mybatis的typeHandler?

转载 作者:太空宇宙 更新时间:2023-11-03 12:07:14 25 4
gpt4 key购买 nike

我正在使用 mybatis 和 spring。我想在 mysql 中存储具有 int 值(称为“序号”)的枚举类型。在 mybatis 中有一个简单的方法:

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

所以当执行 select 或 insert sql 时,auto-mapper 会自动使用 EnumOrdinalTypeHandler。

我的问题是:

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

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

2:如何用更少的代码配置所有枚举类型,例如'component-scan''MapperScannerConfigurer',而不需要列出每个枚举类型?

最佳答案

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))
}

关于java - 如何在Spring的xml中使用 'EnumOrdinalTypeHandler'和mybatis的typeHandler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25939370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com