MyBatis中使用实体中使用枚举,数据库中使用数值
MyBatis中使用实体中使用枚举,数据库中使用数值
一、简介
本文主要讲MyBatis中使用实体中使用枚举,数据库中使用数值的解决方案。正常直接使用会报错,需要添加typeHandlers在mybatis-
config.xml中。
二、解决方案
如下:千万注意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>
MyBatis中使用实体中使用枚举,数据库中使用数值
https://www.dearcloud.cn/2019/03/01/20200310-cnblogs-old-posts/20190301-MyBatis中使用实体中使用枚举,数据库中使用数值/