mybatis-plus 2.x升级3.x注意点

2.0到3.0主要升级的点:

  • 升级 JDK 8 + 优化性能 Wrapper 支持 lambda 语法
  • 模块化 MP 合理的分配各个包结构
  • 重构注入方法,支持任意方法精简注入模式
  • 全局配置下划线转换消灭注入 AS 语句
  • 改造 Wrapper 更改为 QueryWrapper UpdateWrapper
  • 重构 分页插件 消灭固定分页模型,支持 Mapper 直接返回 IPage 接口
  • 新增 Rest Api 通过 Controller 层
  • 实体 String 类型字段默认使用 LIKE 查询 SelectOne 默认 LIMIT 1
  • 辅助支持 selectMaps 新增 bean map 互转工具类
  • 增加 db2 支持 starter 改为 Spring boot 2+ 支持
  • 重构生成器提供自定义 DB 多种模板引擎支持

配置项

sqlSessionFactory 配置

2.0

    
    
        
        
        
        
        
        
        
        
        

        
            
                
                
                
                
                
                
                
            
        
    

3.0

 
    
        
        
        
        
        
        
        
        
        

        
            
                
                
                
                
                
                
                
            
        
    

全局策略配置

2.0

    
    
        
        
        
        
        
        
        
    

3.0

    
    
        
            
                
                
                
                
                
                
                

            
        
    

包结构修改

2.0 3.0
com.baomidou.mybatisplus.activerecord.Model com.baomidou.mybatisplus.extension.activerecord.Model;
com.baomidou.mybatisplus.annotations.TableField; com.baomidou.mybatisplus.annotation.TableField;
com.baomidou.mybatisplus.annotations.TableId; com.baomidou.mybatisplus.annotation.TableId;
com.baomidou.mybatisplus.enums.IdType; com.baomidou.mybatisplus.annotation.IdType;
com.baomidou.mybatisplus.service.impl.ServiceImpl; com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
com.baomidou.mybatisplus.mapper.BaseMapper; com.baomidou.mybatisplus.core.mapper.BaseMapper;
com.baomidou.mybatisplus.plugins.Page; com.baomidou.mybatisplus.extension.plugins.pagination.Page;

Wrapper

删除了EntityWrapper,新增了QueryWrapper、UpdateWrapper、LambdaQueryWrapper、LambdaUpdateWrapper。EntityWrapper可用QueryWrapper来做替换。

2.0

EntityWrapper query = new EntityWrapper();
        query.setEntity(RiskPrice.builder().code(code).enabled(true).build());
        return dao.selectList(query);

3.0

QueryWrapper queryWrapper = new QueryWrapper<>(RiskPrice.builder().code(code).enabled(true).build());
return dao.selectList(queryWrapper);
或者
QueryWrapper queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("code", code).eq("enabled", true);
return dao.selectList(queryWrapper);

方法

BaseMapper

  • 去除了insertAllColumn(T entity),updateAllColumn(T entity)方法
  • 新增update(T entity, Wrapper updateWrapper)方法

IService

  • insert和insertXXX方法改成了save和saveXXX方法
  • deleteXXX改成了removeXXX方法
  • 去掉了XXXAllColumnXXX方法

Wrapper

2.0 3.0 描述
setSqlSelect(String sqlSelect) select(R... columns); 设置查询的返回列

Wrapper使用

QueryWrapper与UpdateWrapper共有方法

方法名 说明
allEq 基于 map 内容等于=
eq 等于 =
ne 不等于 <>
gt 大于 >
ge 大于等于 >=
lt 小于 <
le 小于等于 <=
between BETWEEN 条件语句
notBetween NOT BETWEEN 条件语句
like LIKE '%值%''
notLike NOT LIKE '%值%'
likeLeft LIKE '%值'
likeRight LIKE '值%'
isNull NULL 值查询
isNotNull NOT NULL 值查询
in IN 查询
notIn NOT IN 查询
inSql IN 查询(sql注入式)
notInSql NOT IN 查询(sql注入式)
groupBy 分组 GROUP BY
orderByAsc ASC 排序 ORDER BY
orderByDesc DESC 排序 ORDER BY
orderBy 排序 ORDER BY
having HAVING 关键词(sql注入式)
or or 拼接
apply 拼接自定义内容(sql注入式)
last 拼接在最后(sql注入式)
exists EXISTS 条件语句(sql注入式)
notExists NOT EXISTS 条件语句(sql注入式)
and(Function) AND (嵌套内容)
or(Function) OR (嵌套内容)
nested(Function) (嵌套内容)

QueryWrapper特有方法

方法名 说明
select SQL 查询字段内容,例如:id,name,age(重复设置以最后一次为准)

UpdateWrapper特有方法

方法名 说明
set SQL SET 字段(一个字段使用一次)

分页查询

IPage selectPage(IPage page, @Param("ew") Wrapper queryWrapper);

参考:https://blog.csdn.net/m0_37840000/article/details/81604613

你可能感兴趣的:(mybatis-plus 2.x升级3.x注意点)