Myabtis-Plus之QueryWrapper常用方法
2022年1月17号 星期一 更新
开年重新看了一下博客,发现这篇随便记录的东西竟然是阅读量最高的,唉,就当时打了一个标记,想想都不好意思啊。
补充内容
从源码中可以看出QueryWrapper和LambdaQueryWrapper都是继承自AbstractWrapper这个方法,所以有下面这张见烂的图
再者就要注意诸如下图的一些问题,建议还是实践去看源码最好,或者去官方文档看一下最常用的MapperCRUD接口实现以及条件构造器常用条件
贴上官网链接:https://baomidou.com/pages/49cc81/#service-crud-接口
剩下最重要的还是SQL语句编写以及优化思想,毕竟业务复杂了还是看你SQL写的优秀不优秀。
AbstractWrapper 下的方法及使用
方法名 | 说明 | 使用 |
---|---|---|
allEq(Map<R, V> params) | 全部 =(或个别 isNull) | allEq(params,true) |
eq | = | eq(“real_name”,“王昭君”) |
ne | <> | ne(“nick_name”,“空想 4”) |
gt | > | gt(“age”,21) |
ge | >= | ge(“age”,22) |
lt | < | lt(“age”,22) |
le | <= | le(“age”,21") |
between | cloum between ? and ? | between(“age”,0,21) |
notBetween | cloum between ? and ? | notBetween(“age”,0,21) |
like | cloum like ‘% 王 %’ | like(“real_name”,“王”) |
notLike | not like ‘% 王 %’ | notLike(“real_name”,“王”) |
likeLeft | like ‘% 王’ | likeLeft(“real_name”,“昭”) |
likeRight | like ‘王 %’ | likeRight(“real_name”,“昭”) |
isNull | is null | isNull(“gender”) |
isNotNull | is not null | isNotNull(“gender”) |
in | in (1,2,3) | in(“nick_name”,lists) |
notIn | age not in (1,2,3) | notIn(“nick_name”,lists) |
inSql | age in (1,2,3,4,5,6) | inSql(“nick_name”,"‘空想 4’,‘空想 5’,‘空想 6’") |
notInSql | age not in (1,2,3,4,5,6) | notInSql(“nick_name”,"‘空想 4’,‘空想 5’,‘空想 6’") |
groupBy | group by id,name | groupBy(“nick_name”,“age”) |
orderByAsc | order by id ASC,name ASC | orderByAsc(“nick_name”,“age”) |
orderByDesc | order by id DESC,name DESC | orderByDesc(“age”) |
orderBy | order by id ASC,name ASC | orderBy(true,true,“age”) |
having | having sum(age) > 10 | having(“sum(age) > 10”) |
or | id = 1 or name = ‘老王’ | eq(“nick_name”,“空想 4”).or(i->i.eq(“age”,21) eq(“nick_name”,“空想 4”).or().eq(“nick_name”,“空想 5”) |
and | and (name = ‘李白’ and status <> ‘活着’) | and(i->i.eq(“age”,21)) |
nested | (name = ‘李白’ and status <> ‘活着’) | nested(i->i.eq(“age”,21).eq(“nick_name”,“空想 4”)) |
apply | id = 1 | apply(“nick_name = ‘空想 4’”) |
last | 最后添加多个以最后的为准,有 sql 注入风险 | last(“limit 1”) |
exists | 拼接 EXISTS (sql 语句) | exists(“select id from table where age = 1”) |
notExists | 拼接 NOT EXISTS (sql 语句) | notExists(“select id from table where age = 1”) |
QueryWrapper
继承自 AbstractWrapper , 自身的内部属性 entity 也用于生成 where 条件
及 LambdaQueryWrapper, 可以通过 new QueryWrapper().lambda() 方法获取
方法名 | 说明 | 使用 |
---|---|---|
select | select(i -> i.getProperty().startsWith(“test”)) | select(“id”, “name”, “age”) |
UpdateWrapper
继承自 AbstractWrapper , 自身的内部属性 entity 也用于生成 where 条件
及 LambdaUpdateWrapper, 可以通过 new UpdateWrapper().lambda() 方法获取!
方法名 | 说明 | 使用 |
---|---|---|
set | set(“name”, “老李头”) | set(“name”, “”) |
setSql | setSql(“name = ‘老李头’”) | setSql(String sql) |
参考于https://blog.csdn.net/qq_43399077/article/details/104061760
作者:余月七 (yuyueq)
出处:http://www.cnblogs.com/yuyueq
警言: 无论人生上到哪一层台阶,阶下有人在仰望你,阶上亦有人在俯视你。你抬头自卑,低头自得,唯有平视,才能看见真实的自己。
转载请注明原文链接:https://www.cnblogs.com/yuyueq/p/14639016.html
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢你的支持!
警言: 无论人生上到哪一层台阶,阶下有人在仰望你,阶上亦有人在俯视你。你抬头自卑,低头自得,唯有平视,才能看见真实的自己。
转载请注明原文链接:https://www.cnblogs.com/yuyueq/p/14639016.html
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢你的支持!