详解MyBatis-Plus Wrapper条件构造器查询大全
一、引言
那么那么那么今天来说下MP中强大的条件查询功能。
本章是基于上个案例来讲的:MyBaits-Plus快速入门案例
二、具体操作
首先来说说基本的查询吧,根据主键或者简单的查询条件进行查询。
/** *通过单个ID主键进行查询 */ @Test publicvoidselectById(){ Useruser=userMapper.selectById(1094592041087729666L); System.out.println(user); } /** *通过多个ID主键查询 */ @Test publicvoidselectByList(){ Listlongs=Arrays.asList(1094592041087729666L,1094590409767661570L); List users=userMapper.selectBatchIds(longs); users.forEach(System.out::println); } /** *通过Map参数进行查询 */ @Test publicvoidselectByMap(){ Map params=newHashMap<>(); params.put("name","张雨琪"); List users=userMapper.selectByMap(params); users.forEach(System.out::println); }
MyBatis-Plus还提供了Wrapper条件构造器,具体使用看如下代码:
/** *名字包含雨并且年龄小于40 **WHEREnameLIKE'%雨%'ANDage<40 */ @Test publicvoidselectByWrapperOne(){ QueryWrapper
wrapper=newQueryWrapper(); wrapper.like("name","雨").lt("age",40); List users=userMapper.selectList(wrapper); users.forEach(System.out::println); } /** *名字包含雨 *年龄大于20小于40 *邮箱不能为空 * *WHEREnameLIKE'%雨%'ANDageBETWEEN20AND40ANDemailISNOTNULL */ @Test publicvoidselectByWrapperTwo(){ QueryWrapper
wrapper=Wrappers.query(); wrapper.like("name","雨").between("age",20,40).isNotNull("email"); List users=userMapper.selectList(wrapper); users.forEach(System.out::println); } /** *名字为王性 *或者年龄大于等于25 *按照年龄降序排序,年龄相同按照id升序排序 * *WHEREnameLIKE'王%'ORage>=25ORDERBYageDESC,idASC */ @Test publicvoidselectByWrapperThree(){ QueryWrapper
wrapper=Wrappers.query(); wrapper.likeRight("name","王").or() .ge("age",25).orderByDesc("age").orderByAsc("id"); List users=userMapper.selectList(wrapper); users.forEach(System.out::println); } /** *查询创建时间为2019年2月14 *并且上级领导姓王 * *WHEREdate_format(create_time,'%Y-%m-%d')='2019-02-14'ANDmanager_idIN(selectidfromuserwherenamelike'王%') */ @Test publicvoidselectByWrapperFour(){ QueryWrapper
wrapper=Wrappers.query(); wrapper.apply("date_format(create_time,'%Y-%m-%d')={0}","2019-02-14") .inSql("manager_id","selectidfromuserwherenamelike'王%'"); List users=userMapper.selectList(wrapper); users.forEach(System.out::println); } /** *查询王姓 *并且年龄小于40或者邮箱不为空 * *WHEREnameLIKE'王%'AND(age<40ORemailISNOTNULL) */ @Test publicvoidselectByWrapperFive(){ QueryWrapper
wrapper=Wrappers.query(); wrapper.likeRight("name","王").and(qw->qw.lt("age",40).or().isNotNull("email")); List users=userMapper.selectList(wrapper); users.forEach(System.out::println); } /** *查询王姓 *并且年龄大于20、年龄小于40、邮箱不能为空 * *WHEREnameLIKE?OR(ageBETWEEN?AND?ANDemailISNOTNULL) */ @Test publicvoidselectByWrapperSix(){ QueryWrapper
wrapper=Wrappers.query(); wrapper.likeRight("name","王").or( qw->qw.between("age",20,40).isNotNull("email") ); List users=userMapper.selectList(wrapper); users.forEach(System.out::println); } /** *(年龄小于40或者邮箱不为空)并且名字姓王 *WHERE(age<40ORemailISNOTNULL)ANDnameLIKE'王%' */ @Test publicvoidselectByWrapperSeven(){ QueryWrapper wrapper=Wrappers.query(); wrapper.nested(qw->qw.lt("age",40).or().isNotNull("email")) .likeRight("name","王"); List users=userMapper.selectList(wrapper); users.forEach(System.out::println); } /** *查询年龄为30、31、32 *WHEREageIN(?,?,?) */ @Test publicvoidselectByWrapperEight(){ QueryWrapper wrapper=Wrappers.query(); wrapper.in("age",Arrays.asList(30,31,32)); List users=userMapper.selectList(wrapper); users.forEach(System.out::println); } /** *查询一条数据 *limit1 */ @Test publicvoidselectByWrapperNine(){ QueryWrapper wrapper=Wrappers.query(); wrapper.in("age",Arrays.asList(30,31,32)).last("limit1"); List users=userMapper.selectList(wrapper); users.forEach(System.out::println); }
到此这篇关于详解MyBatis-PlusWrapper条件构造器查询大全的文章就介绍到这了,更多相关MyBatis-PlusWrapper条件构造器内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。