spring boot 2.0.3 mybatis升级mybatis-plus

项目原来是使用mybtais + durid,现升级为mybatis-plus2.3 + durid + mysql。

官方文档地址,请注意:mybatis-plus3.0+ 的配置有变化,请查看官网文档(可能是旧的)或demo

步骤如下:
1. 引入pom

<dependencies>
  <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>2.3</version>
  </dependency>
</dependencies>
<!-- 如果mapper.xml是放在src/main/java目录下,需配置以下-->
<build>
  <resources>
      <resource>
          <directory>src/main/java</directory>
          <filtering>false</filtering>
          <includes>
              <include>**/mapper/*.xml</include>
          </includes>
      </resource>
  </resources>
</build>
  1. 配置application.properties(durid配置不变)
##mybatis-plus begin

#mapper.xml包路径
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

mybatis-plus.mapper-locations=classpath*:sqlmap/**/*Mapper.xml

#实体扫描,多个package用逗号或者分号分隔
mybatis-plus.typeAliasesPackage=com.burt.domain

#枚举扫描,多个package用逗号或者分号分隔
#mybatis-plus.typeEnumsPackage=com.burt.*.entity.enums

#主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
mybatis-plus.global-config.id-type=2

#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
mybatis-plus.global-config.field-strategy=2

#驼峰下划线转换
mybatis-plus.global-config.db-column-underline=true

#mp2.3+ 全局表前缀 mp_
#mybatis-plus.global-config.table-prefix: mp_

#刷新mapper 调试神器
#mybatis-plus.global-config.refresh-mapper: true

#配置返回数据库(column下划线命名&&返回java实体是驼峰命名),自动匹配无需as(没开启这个,SQL需要写as: select user_id as userId)
mybatis-plus.configuration.map-underscore-to-camel-case=true

mybatis-plus.configuration.cache-enabled=false

##mybatis-plus end
  1. 使用@MapperScan注解扫描Mapper接口
@MapperScan(value = { "com.burt.dao", "com.burt.*.dao" })
  1. 修改durid配置中mybatis的SqlSessionFactoryBean org.mybatis.spring.SqlSessionFactoryBean为mybatis-plus的SqlSessionFactoryBean com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean
    如果不修改会仍然使用mybatis的SqlSessionFactoryBean而不是mytais-plus的,会出现异常Invalid bound statement (not found)

如果项目启动出现这个错:

sun.misc.Unsafe.park......
java.util.concurrent.locks.LockSupport.parkNanos......

那极有可能是因为上述第4步没有做,没有换成mybatis-plus的SqlSessionFactoryBean,导致mybatis与mybatis-plus冲突

猜你喜欢

转载自blog.csdn.net/lw296196709/article/details/81215012