mybatis plus条件拼接

2021-01-04  本文已影响0人  虾米咬小米

条件构造器

说明:

  • 以下出现的第一个入参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

eq:等于 =
eq(R column, Object val)
eq(boolean condition, R column, Object val)
例: eq("name", "老王")--->name = '老王'
ne:不等于 <>
ne(R column, Object val)
ne(boolean condition, R column, Object val)
例: ne("name", "老王")--->name <> '老王'
gt:大于 >
gt(R column, Object val)
gt(boolean condition, R column, Object val)

参考:
https://www.cnblogs.com/ziyue7575/p/d7b0ae33d4b51d97f490ee9f4092808b.html

上一篇下一篇

猜你喜欢

热点阅读