MyBatis中使用實體中使用枚舉,數據庫中使用數值

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&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>
相關文章
相關標籤/搜索