目录
-
标准分页功能制作
- 1:设置分页拦截器作为Spring管理的bean
-
@Configuration public class MpConfig { @Bean public MybatisPlusInterceptor mpInterceptor(){ //1.定义MP拦截器 MybatisPlusInterceptor mpInterceptor = new MybatisPlusInterceptor(); //2.添加具体的拦截器 mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor()); return mpInterceptor; } }
- 2:执行分页查询
-
@Test void testGetByPage(){ IPage page = new Page(1,2); personDao.selectPage(page,null); System.out.println("当前页码值:"+page.getCurrent()); System.out.println("每页显示数:"+page.getSize()); System.out.println("一共多少页:"+page.getPages()); System.out.println("一共多少条数据:"+page.getTotal()); System.out.println("数据:"+page.getRecords()); }
- 3:开启日志
-
# 开启mp的日志(输出到控制台) mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
-
条件查询
- 去掉多余日志方法
-
<?xml version="1.0" encoding="UTF-8"?> <configuration> </configuration>
-
global-config: banner: false
-
main: banner-mode: off
- 条件查询-设置查询条件
- 格式一:常规格式
- 格式二:链式编程格式
- 格式三:lambda格式(推荐)
- 条件查询-组合查询条件
- 并且(and)
- 或者(or)
-
@Test void testGetAll1(){ //方式一:按条件查询 //QueryWrapper qw = new QueryWrapper(); //qw.lt("age",15); //List<Person> personList = personDao.selectList(qw); //System.out.println(personList); //方式二:Lambda格式按条件查询 //QueryWrapper<Person> qw = new QueryWrapper<Person>(); //qw.lambda().lt(Person::getAge,17); //List<Person> personList = personDao.selectList(qw); //System.out.println(personList); //方式三:Lambda格式按条件查询 //LambdaQueryWrapper<Person> lqw = new LambdaQueryWrapper<Person>(); //lqw.lt(Person::getAge,17); //List<Person> personList = personDao.selectList(lqw); //System.out.println(personList); //LambdaQueryWrapper<Person> lqw = new LambdaQueryWrapper<Person>(); //lqw.lt(Person::getAge,18); //lqw.gt(Person::getAge,15); //List<Person> personList = personDao.selectList(lqw); //System.out.println(personList); LambdaQueryWrapper<Person> lqw = new LambdaQueryWrapper<Person>(); //15至18岁之间 //lqw.lt(Person::getAge,18).gt(Person::getAge,15); //大于18岁或者小于15岁 lqw.lt(Person::getAge,15).or().gt(Person::getAge,18); List<Person> personList = personDao.selectList(lqw); System.out.println(personList); }
-
条件查询-null值处理
- 存在问题
- if语句控制条件追加
- LambdaQueryWrapper lqw = new LambdaQueryWrapper<User>();
-
if(null != userQuery.getAge()){
- lqw.ge(User::getAge, userQuery.getAge());
- }
-
if(null != userQuery.getAge2()){
- lqw.lt(User::getAge, userQuery.getAge2());
- }
- List<User> userList = userDao.selectList(lqw);
- System.out.println(userList);
- 条件参数控制
-
LambdaQueryWrapper lqw = new LambdaQueryWrapper<User>();
- lqw.ge(null != userQuery.getAge(),User::getAge,userQuery.getAge());
- lqw.lt(null != userQuery.getAge2(),User::getAge, userQuery.getAge2());
- List<User> userList = userDao.selectList(lqw);
- System.out.println(userList);
- 条件参数控制(链式编程)
- LambdaQueryWrapper lqw = new LambdaQueryWrapper<User>();
-
lqw.ge(null != userQuery.getAge(),User::getAge,userQuery.getAge())
- .lt(null != userQuery.getAge2(),User::getAge, userQuery.getAge2());
- List<User> userList = userDao.selectList(lqw);
- System.out.println(userList);
-
//模拟页面传递过来的查询数据 PersonQuery uq = new PersonQuery(); //uq.setAge("10"); uq.setAge2(15); //null判定 LambdaQueryWrapper<Person> lqw = new LambdaQueryWrapper<Person>(); //lqw.lt(Person::getAge,uq.getAge2()); //if(null != uq.getAge()){ // lqw.gt(Person::getAge,uq.getAge()); //} //先判定第一个参数是否为true,如果为true连接当前条件 //lqw.lt(null != uq.getAge2(),Person::getAge,uq.getAge2()); //lqw.gt(null != uq.getAge(),Person::getAge,uq.getAge()); lqw.lt(null != uq.getAge2(),Person::getAge,uq.getAge2()) .gt(null != uq.getAge(),Person::getAge,uq.getAge()); List<Person> personList = personDao.selectList(lqw); System.out.println(personList);