1. 程式人生 > >關於Mybatis plus 2.0.8 ID無法生成問題

關於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官方文件介紹

  • 主鍵策略選擇
描述
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就可以使用了,是不是感覺很扯,我也是這麼覺得,問題說大不大,說小吧也是找了半天,如果有人碰到這個問題就分享給你們咯,文筆不好,見諒。