關於Mybatis plus 2.0.8 ID無法生成問題

Mybatis plus 2.0.8 Id生成無法使用

新項目用到Mybatis plus 和spring框架,項目繼承好之後發現使用的時候無法自動生成ID,結合Mybatis plus官方文檔所寫有4種主檢策略,我們選擇使用的是UUID,如果每次手動SET UID的話難免會有些麻煩,程序員都懶嘛,既然有問題那麼我們就來解決。
這個問題說大不大說小也不小,總是我和同事是找了半天問題,比較現在網上Mybatis plus相關文檔不是很全面,google一下也是一樣(藍燈最近也不好用)很頭疼,下面我就說一下吧!哦,對了,本文檔盡針對Mybatis plus2.0.8版本,該大坑最簡單的方法就是提升版本,官方版本最近已經解決了,但是我怕又有其它的坑出來,所以就放棄了。

Mybatis plus官方文檔介紹

官方網站:http://baomidou.oschina.io/mybatis-plus-doc/

  • 主鍵策略選擇
描述
IdType.AUTO 數據庫ID自增
IdType.INPUT 用戶輸入ID
IdType.ID_WORKER 全局唯一ID,內容爲空自動填充(默認配置)
dType.UUID 全局唯一ID,內容爲空自動填充


  • 看過文檔我們就知道下面這句話就是自動生成UUID value=3代表dType.UUID
<property name="idType" value="3" />


先來看看我的是隻有一個spring.xml文件,這個時候就不行了

 <!-- Spring整合Mybatis,更多查看文檔:http://mp.baomidou.com -->
    <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
        <!--<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">-->
        <property name="dataSource" ref="dataSource"/>
        <!-- 自動掃描Mapping.xml文件 -->
        <property name="mapperLocations" value="classpath:com/xx/modules/*/mapper/xml/*Dao.xml"/>
        <!--<property name="configLocation" value="classpath:spring/mybatis-config.xml"/>-->
        <property name="typeAliasesPackage" value="com.xx.modules.*.entity"/>
        <property name="plugins">
            <array>
                <!-- 分頁插件配置 -->
                <bean id="paginationInterceptor" class="com.baomidou.mybatisplus.plugins.PaginationInterceptor">
                    <property name="dialectType" value="mysql"/>
                </bean>
                <bean class="com.xx.common.utils.PerformanceInterceptor"></bean>
            </array>
        </property>
        <!-- 全局配置注入 -->
        <property name="globalConfig" ref="globalConfig" />
    </bean>
    <bean id="globalConfig" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
        <property name="sqlInjector" ref="logicSqlInjector" />
        <property name="logicDeleteValue" value="-1" />
        <property name="logicNotDeleteValue" value="1" />
        <property name="idType" value="3" />
        <!--
            AUTO->`0`("數據庫ID自增")
             INPUT->`1`(用戶輸入ID")
            ID_WORKER->`2`("全局唯一ID")
            UUID->`3`("全局唯一ID")
        -->
        <!--<property name="idType" value="2" />-->
        <!--
            MYSQL->`mysql`
            ORACLE->`oracle`
            DB2->`db2`
            H2->`h2`
            HSQL->`hsql`
            SQLITE->`sqlite`
            POSTGRE->`postgresql`
            SQLSERVER2005->`sqlserver2005`
            SQLSERVER->`sqlserver`
        -->
        <!-- Oracle需要添加該項 -->
        <!-- <property name="dbType" value="oracle" /> -->
        <!-- 全局表爲下劃線命名設置 true -->
        <!-- <property name="dbColumnUnderline" value="true" /> -->

        <!--數據庫關鍵字轉義符,'desc', "desc" -->
        <!--<property name="identifierQuote" value="'" />-->
    </bean>
    <bean id="logicSqlInjector" class="com.baomidou.mybatisplus.mapper.LogicSqlInjector" />

  • 這個時候可以看到我的上面有這樣一段代碼
<!--<property name="configLocation" value="classpath:spring/mybatis-config.xml"/>-->

  • 沒錯問題就出在這裏,我們需要應用一個mybatis-config.xml文件 但是我根本就沒用這個東西,所以呢,怎麼辦,新建一個新的xml文件裏面寫不寫無所謂
<?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></configuration>

  • 我們把上面Spring文件中此段代碼放開就行
<property name="configLocation" value="classpath:spring/mybatis-config.xml"/>
  • 現在我們上面的idType就可以使用了,是不是感覺很扯,我也是這麼覺得,問題說大不大,說小吧也是找了半天,如果有人碰到這個問題就分享給你們咯,文筆不好,見諒。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章