一、范围查询
需求:对年龄进行范围查询,使用lt()、le()、gt()、between()进行范围查询
@SpringBootTest class Mybatisplus02DqlApplicationTests { @Autowired private UserDao userDao; @Test void testGetAll(){ LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>(); lqw.between(User::getAge, 10, 30); //SELECT id,name,password,age,tel FROM user WHERE (age BETWEEN ? AND ?) List<User> userList = userDao.selectList(lqw); System.out.println(userList); } }
gt():大于(>)
ge():大于等于(>=)
lt():小于(<)
lte():小于等于(<=)
between():between ? and ?
二、模糊查询
需求:查询表中name属性的值以3开头的用户信息,使用like进行模糊查询
@SpringBootTest class Mybatisplus02DqlApplicationTests { @Autowired private UserDao userDao; @Test void testGetAll(){ LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>(); lqw.likeLeft(User::getName, "J"); //SELECT id,name,password,age,tel FROM user WHERE (name LIKE ?) List<User> userList = userDao.selectList(lqw); System.out.println(userList); } }
like():前后加百分号,如 %J%
likeLeft():前面加百分号,如 %J
likeRight():后面加百分号,如 J%
三、排序查询
需求:查询所有数据,然后按照id降序
@SpringBootTest class Mybatisplus02DqlApplicationTests { @Autowired private UserDao userDao; @Test void testGetAll(){ LambdaQueryWrapper<User> lwq = new LambdaQueryWrapper<>(); /** * condition :条件,返回boolean, 当condition为true,进行排序,如果为false,则不排序 * isAsc:是否为升序,true为升序,false为降序 * columns:需要操作的列 */ lwq.orderBy(true,false, User::getId); userDao.selectList(lw } }
除了上面的演示方式,还有其他排序方法可以被调用:
orderBy排序
● condition:条件,true则添加排序,false则不添加排序
● isAsc:是否为升序,true升序,false降序
● columns:排序字段,可以有多个
orderByAsc/Desc(单个column):按照指定字段进行升序/降序
orderByAsc/Desc(多个column):按照多个字段进行升序/降序
● orderByAsc/Desc
● condition:条件,true添加排序,false不添加排序
除了上面几种查询条件构建方法还有其他方法,比如isNull,isNotNull,notIn等等方法可供选择,具体可以参考官方文档的条件构造器俩学习使用,具体网址为:
条件构造器 | MyBatis-Plus (baomidou.com)