ITPub博客

首页 > 数据库 > 数据库开发技术 > 每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一)(条件构造器)

每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一)(条件构造器)

原创 数据库开发技术 作者:悟空聊架构 时间:2020-01-31 16:01:16 0 删除 编辑

阅读目录

  • 一、案例汇总(第一波)

  • 二、案例讲解

每天玩转3分钟 MyBatis-Plus - 1. 配置环境

每天玩转3分钟 MyBatis-Plus - 2. 普通查询

每天玩转3分钟 MyBatis-Plus - 3. 高级查询

代码下载:https://github.com/Jackson0714/study-mybatis-plus.git

mybatis-plus的查询功能非常强大, 上一篇,我们介绍了mybatis-plus的普通查询功能,这一篇我们介绍mybatis-plus的高级查询功能。通过几个查询需求来讲解。

准备数据

User 表结构如下:

id name age email
1 Jone 18 test1@baomidou.com
2 Jack 20 test2@baomidou.com
3 Tom 28 test3@baomidou.com
4 Sandy 21 test4@baomidou.com
5 Billie 24 test5@baomidou.com



一、案例汇总(第一波)

1.1 查询名字中包含“Ja”并且年龄小于30的用户


难度系数 ★☆

1.2 查询名字中包含“a”并且年龄大于等于15且年龄小于等于25,且email不为空


难度系数 ★☆

1.3 查询名字中“J”开头并且年龄大于等于25,按照年龄降序排列,年龄相同按照id升序排列


难度系数 ★★★

二、案例讲解

1.1 查询名字中包含“Ja”并且年龄小于30的用户


难度系数 ★☆

考察 like、lt用法

name LIKE '%Ja%' age < 30

/*     * 描述:例2.1 查询名字中包含“Ja”并且年龄小于30的用户     * 作者:博客园-悟空聊架构     * 时间:2019-01-20     * Github:https://github.com/Jackson0714/study-mybatis-plus.git     * 博客园:https://www.cnblogs.com/jackson0714     * */    @Test    public void testSelectByQueryWrapper() {        System.out.println(("----- 查询名字中包含“Ja”并且年龄小于30的用户------"));        QueryWrapper<User> queryWrapper = new QueryWrapper<>();        queryWrapper.like("name", "ja").lt("age", 30);        List<User> userList = userMapper.selectList(queryWrapper);        userList.forEach(System.out::println);    }

1.2 查询名字中包含“a”并且年龄大于等于15且年龄小于等于25,且email不为空


难度系数 ★☆

考察 between 用法

SQL语句:name LIKE '%a%' AND age BETWEEN 15 AND 25 AND email IS NOT NULL

/* * 描述:例1.2 查询名字中包含“a”并且年龄大于等于15且年龄小于等于35,且email不为空 * 作者:博客园-悟空聊架构 * 时间:2019-01-20 * Github:https://github.com/Jackson0714/study-mybatis-plus.git * 博客园:https://www.cnblogs.com/jackson0714 * */ @Test public void testSelectByQueryWrapper2() {    System.out.println(("----- 查询名字中包含“a”并且年龄大于等于15且年龄小于等于25,且email不为空------"));    QueryWrapper<User> queryWrapper = new QueryWrapper<>();    //queryWrapper.like("name", "a").ge("age", 15).le("age", 25).isNotNull("email");    queryWrapper.like("name", "a").between("age", 15,25).isNotNull("email");    List<User> userList = userMapper.selectList(queryWrapper);    userList.forEach(System.out::println); }


 1.3 查询名字中“J”开头并且年龄大于等于25,按照年龄降序排列,年龄相同按照id升序排列


难度系数 ★★★

考察 likeRight、orderByDesc、orderByAsc 用法
SQL语句:name LIKE 'J%' or age > 25 ORDER BY age desc, id ASC
/** 描述:例1.3 查询名字中“J”开头并且年龄大于26,按照年龄降序排列,年龄相同按照id升序排列* SQL语句:name LIKE 'J%' or age > 26 ORDER BY age desc, id ASC* 作者:博客园-悟空聊架构* 时间:2019-01-20* Github:https://github.com/Jackson0714/study-mybatis-plus.git* 博客园:https://www.cnblogs.com/jackson0714* */@Testpublic void testSelectByQueryWrapper3() {   System.out.println(("----- 查询名字中包含“a”并且年龄大于26,按照年龄降序排列,年龄相同按照id升序排列 ------"));   QueryWrapper<User> queryWrapper = new QueryWrapper<>();   queryWrapper.likeRight("name","J").or().gt("age",26).orderByDesc("age")        .orderByAsc("id");   List<User> userList = userMapper.selectList(queryWrapper);   userList.forEach(System.out::println); }


 

每天玩转3分钟 MyBatis-Plus - 1. 配置环境

每天玩转3分钟 MyBatis-Plus - 2. 普通查询

每天玩转3分钟 MyBatis-Plus - 3. 高级查询

 

关注公众号:悟空聊架构,回复pmp,领取pmp资料!回复悟空,领取架构师资料!

悟空聊架构 

关注我,带你每天进步一点点!

还有111本书籍赠送~~


原文作者:悟空聊架构;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2018-12-24

  • 博文量
    228
  • 访问量
    143844