您的位置:首页 > 其它

关于Mybatis plus 2.0.8 ID无法生成问题

2017-11-14 17:23 453 查看

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>

9f68
<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就可以使用了,是不是感觉很扯,我也是这么觉得,问题说大不大,说小吧也是找了半天,如果有人碰到这个问题就分享给你们咯,文笔不好,见谅。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐