1、簡介java
本文主要講MyBatis中使用實體中使用枚舉,數據庫中使用數值的解決方案。正常直接使用會報錯,須要添加typeHandlers在mybatis-config.xml中。mysql
2、解決方案sql
以下:千萬注意configuration中typeHandlers和其它節點之間的放置順序。不然會出錯。數據庫
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <!--配置 --> <configuration> <!--枚舉處理--> <typeHandlers> <typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" javaType="com.test.domain.enums.EffectAppEnum"/> <typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" javaType="com.test.domain.enums.ModuleEnum"/> <typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" javaType="com.test.domain.enums.ReplaceModeEnum"/> <typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" javaType="com.test.domain.enums.TriggerTypeEnum"/> </typeHandlers> <!--配置環境 --> <environments default="development"> <environment id="development"> <!--事務管理 --> <transactionManager type="JDBC"/> <!--數據源 經過Properties加載配置 --> <dataSource type="POOLED"> <!--驅動driver --> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <!--鏈接URL --> <property name="url" value="jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true"/> <!--用戶名 --> <property name="username" value="root"/> <!--密碼 --> <property name="password" value="1234567"/> </dataSource> </environment> </environments> <!--創建映射 --> <mappers> <mapper resource="mappers/InitMapper.xml"/> </mappers> </configuration>