我是靠谱客的博主 辛勤薯片,最近开发中收集的这篇文章主要介绍mybatis plus条件拼接mybatis plus条件拼接 条件构造器 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

mybatis plus条件拼接
条件构造器
案例table
AbstractWrapper
allEq:全部eq(或个别isNull)
eq:等于 =
ne:不等于 <>
gt:大于 >
ge:大于等于 >=
lt:小于 <
le:小于等于 <=
between:BETWEEN 值1 AND 值2
notBetween:NOT BETWEEN 值1 AND 值2
like:LIKE '%值%'
notLike:NOT LIKE '%值%'
likeLeft:LIKE '%值'
likeRight:LIKE '值%'
isNull:字段 IS NULL
isNotNull: 字段 IS NULL
in:字段 IN
notIn:字段 NOT IN
inSql:字段 IN ( sql语句 )
notInSql:字段 NOT IN ( sql语句 )
groupBy:分组:GROUP BY 字段, ...
orderByAsc:排序:ORDER BY 字段, ... ASC
orderByDesc 排序:ORDER BY 字段, ... DESC
orderBy:排序:ORDER BY 字段, ...
having:HAVING ( sql语句 )
or:拼接 OR
and:AND 嵌套
nested:正常嵌套 不带 AND 或者 OR
apply:拼接 sql
last:无视优化规则直接拼接到 sql 的最后
exists:拼接 EXISTS ( sql语句 )
notExists:拼接 NOT EXISTS ( sql语句 )
QueryWrapper(select)
select:设置查询字段
excludeColumns:排除查询字段
UpdateWrapper(update)
set
setSql:设置 SET 部分 SQL
lambda
使用 Wrapper 自定义SQL
Service.java
方案一 注解方式 Mapper.java
方案二 XML形式 Mapper.xml
分页查询
自定义SQL查询分页数据
热部署(已过时)
逻辑删除(不建议使用)
配置
使用
枚举
配置
实现 IEnum 接口
使用

来源: mybatis plus官网

mybatis plus条件拼接

条件构造器

说明:

  • 以下出现的第一个入参boolean condition表示该条件是否加入最后生成的sql中
  • 没有标明condition的方法,默认为true
  • 以下出现的泛型Param均为Wrapper的子类实例(均具有AbstractWrapper的所有方法)
  • 以下方法在入参中出现的R为泛型,在普通wrapper中是String,在LambdaWrapper中是函数(例:Entity::getId,Entity为实体类,getId为字段idgetMethod)
  • 参数R column均表示数据库字段,而不是实体类数据字段名!!!(字段名是数据库关键字的自己用转义符包裹!)!
  • 以下举例均为使用普通wrapper,入参为MapList的均以json形式表现!
  • 使用中如果入参的Map或者List,则不会加入最后生成的sql中!!!
  • 有任何疑问就点开源码看,看不懂函数的点击我学习新知识

警告:
不支持以及不赞成在 RPC 调用中把 Wrapper 进行传输(远程调用)

  1. wrapper 很重
  2. 传输 wrapper 可以类比为你的 controller 用 map 接收值(开发一时爽,维护火葬场)
  3. 正确的 RPC 调用姿势是写一个 DTO 进行传输,被调用方再根据 DTO 执行相应的操作
  4. 我们拒绝接受任何关于 RPC 传输 Wrapper 报错相关的 issue 甚至 pr

案例table

 
 
  1. CREATE TABLE `aaa_bbb_cc` (
  2. `ID` int(10) NOT NULL AUTO_INCREMENT,
  3. `aa_as` varchar(255) DEFAULT NULL,
  4. `ab_AAA` varchar(255) DEFAULT NULL,
  5. PRIMARY KEY (`ID`)
  6. ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;
 
 
  1. @Data
  2. @AllArgsConstructor
  3. @NoArgsConstructor
  4. public class AaaBbbCc implements Serializable {
  5. private static final long serialVersionUID = 1L;
  6. @TableId(value = "ID", type = IdType.AUTO)
  7. private Integer id;
  8. private String aaAs;
  9. @TableField("ab_AAA")
  10. private String abAaa;
  11. }

AbstractWrapper

说明:
QueryWrapper(LambdaQueryWrapper) 和 UpdateWrapper(LambdaUpdateWrapper) 的父类
用于生成 sql 的 where 条件, entity 属性也用于生成 sql 的 where 条件
注意: entity 生成的 where 条件与 使用各个 api 生成的 where 条件没有任何关联行为

allEq:全部eq(或个别isNull)

 
 
  1. allEq(Map<R, V> params)
  2. allEq(Map<R, V> params, boolean null2IsNull)
  3. allEq(boolean condition, Map<R, V> params, boolean null2IsNull)
  4. allEq(BiPredicate<R, V> filter, Map<R, V> params)
  5. allEq(BiPredicate<R, V> filter, Map<R, V> params

最后

以上就是辛勤薯片为你收集整理的mybatis plus条件拼接mybatis plus条件拼接 条件构造器 的全部内容,希望文章能够帮你解决mybatis plus条件拼接mybatis plus条件拼接 条件构造器 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部