Mybatis-plus升级(2.3至3.5)
1、修改POM文件
原配置
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>2.3</version>
</dependency>
修改版本
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.7</version>
</dependency>
2、修改引入
包引入修改
原版本 | 升级版本 |
---|---|
import com.baomidou.mybatisplus.mapper.BaseMapper; | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
import com.baomidou.mybatisplus.service.impl.ServiceImpl; | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
import com.baomidou.mybatisplus.service.IService; | import com.baomidou.mybatisplus.extension.service.IService; |
import com.baomidou.mybatisplus.enums.IdType; | import com.baomidou.mybatisplus.annotation.IdType; |
import com.baomidou.mybatisplus.annotations.TableId; | import com.baomidou.mybatisplus.annotation.TableId; |
import com.baomidou.mybatisplus.annotations.TableField; | import com.baomidou.mybatisplus.annotation.TableField; |
import com.baomidou.mybatisplus.annotations.TableName; | import com.baomidou.mybatisplus.annotation.TableName; |
import com.baomidou.mybatisplus.mapper.EntityWrapper; | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
import com.baomidou.mybatisplus.plugins.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
import com.baomidou.mybatisplus.enums.SqlLike; | import com.baomidou.mybatisplus.core.enums.SqlLike; |
import com.baomidou.mybatisplus.enums.FieldStrategy; | import com.baomidou.mybatisplus.annotation.FieldStrategy; |
import com.baomidou.mybatisplus.activerecord.Model; | import com.baomidou.mybatisplus.extension.activerecord.Model; |
import com.baomidou.mybatisplus.annotations.Version; | 删除 |
import com.baomidou.mybatisplus.mapper.Wrapper; | 删除 |
import com.baomidou.mybatisplus.plugins.pagination.Pagination; | 删除 |
如有修改操作,则将import com.baomidou.mybatisplus.mapper.EntityWrapper;
替换成:import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
实体Field注解
原版本 | 升级版本 |
---|---|
strategy = FieldStrategy.IGNORED | updateStrategy = FieldStrategy.IGNORED |
实体pkVal修改
原版本:
@Override
protected Serializable pkVal() {
return this.id;
}
升级版本:
@Override
public Serializable pkVal() {
return this.id;
}
3、修改分页
原版本分页
package com.config;
import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@MapperScan({"com.*.mapper"})
public class MybatisConfiguration {
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
升级版本分页修改为:
package com.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@MapperScan({"com.*.mapper"})
public class MybatisConfiguration {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor page = new MybatisPlusInterceptor();
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
paginationInnerInterceptor.setOverflow(true);
page.addInnerInterceptor(paginationInnerInterceptor);
return page;
}
}
4、修改方法
以下修改方法默认针对Service调整
4.1、查询
方法替换
原版本 | 升级版本 |
---|---|
selectOne | getOne |
selectCount | count |
selectList | list |
selectById | getById |
selectPage | page |
setSqlSelect | select |
selectBatchIds | listByIds |
selectMaps | getMap |
selectByMap | listByMap |
andNew() | .and(QueryWrapper->QueryWrapper.) |
where | apply |
orderDesc | orderByDesc |
方法延伸
原版本 | 升级版本 | 原版本举例 | 升级版本举例 |
---|---|---|---|
orderBy | orderByAsc | wrapper.orderBy(“ID”,true); | wrapper.orderByAsc(“ID”); |
orderBy | orderByDesc | wrapper.orderBy(“ID”,false); | wrapper.orderByDesc(“ID”); |
like | likeRight | wrapper.like(“ID”, vo.getId(), SqlLike.RIGHT); | wrapper.likeRight(“ID”, vo.getId()); |
like | likeLeft | wrapper.like(“ID”, vo.getId(), SqlLike.LEFT); | wrapper.likeLeft(“ID”, vo.getId()); |
4.2、新增、修改、删除
原版本 | 升级版本 |
---|---|
insert | save |
insertBatch | saveBatch |
insertOrUpdate | saveOrUpdate |
insertOrUpdateBatch | saveOrUpdateBatch |
insertOrUpdateAllColumnBatch | 删除,可使用 saveOrUpdateBatch |
updateForSet | 删除 |
deleteById | removeById |
delete | remove |
deleteBatchIds | removeBatchByIds |
4.3、baseMapper
方法 | 原版本 | 升级版本 |
---|---|---|
selectOne() | 参数:Object | 参数:QueryWrapper |
selectCount | 返回值:Integer | 返回值:Long |
手机 | 手机 | 手机 |
4.4、分页
需手动修改的 baseMapper.selectPage
原版本: BaseMapper源码:
升级版本:
也就是说其 BaseMapper 的分页,也采用和service一致,直接返回Page,不需要再次手动处理。
原版本:
Page page = new Page(vo.getPageNo(),vo.getPageSize());
List<Object> list = baseMapper.selectPage(page, wrapper);
page.setRecords(list);
return page;
升级版本:
Page page = new Page(vo.getPageNo(),vo.getPageSize());
return baseMapper.selectPage(page, wrapper);
注意: @TableId一个实体类中不能存在多个,否则会报错。
OK,就这些吧。
有什么不对的还望指正,书写不易,觉得有帮助就点个赞吧!☺☺☺
参考链接:
https://blog.csdn.net/fly_or/article/details/121093337
https://blog.csdn.net/zhu1361/article/details/125412427
https://blog.csdn.net/2301_77358195/article/details/140675578