欢迎来到我的的博客园,祝大家学有所成,早点实现自己的人生理想。

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&amp;useUnicode=true&amp;useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;allowMultiQueries=true"/>
                <!--用户名  -->
                <property name="username" value="root"/>
                <!--密码  -->
                <property name="password" value="1234567"/>
            </dataSource>
        </environment>
    </environments>
    <!--建立映射  -->
    <mappers>
        <mapper resource="mappers/InitMapper.xml"/>
    </mappers>
</configuration>

 

posted @ 2019-03-01 16:55  宋兴柱  阅读(2142)  评论(0编辑  收藏  举报