当前位置: 代码迷 >> 综合 >> Mybatis_plus(005)---条件构造器
  详细解决方案

Mybatis_plus(005)---条件构造器

热度:85   发布时间:2023-12-13 22:55:17.0

一:条件构造器(wrapper)

更多方法查看官网:https://mp.baomidou.com/guide/wrapper.html#ge

我们写一些复杂的sql就可以使用它来替代。

1.测试一

 @Testvoid contextLoads() {//查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于12岁的。QueryWrapper<User> wrapper = new QueryWrapper<>();wrapper.isNotNull("name").isNotNull("email").ge("age",12);userMapper.selectList(wrapper).forEach(System.out::println);}

2.测试二

 @Testvoid test2(){//查询name=Jack的用户QueryWrapper<User> wrapper = new QueryWrapper<>();wrapper.eq("name","Jack");User user = userMapper.selectOne(wrapper);//查询一个数据,出现多个结果使用List或者MapSystem.out.println(user);}

看一下控制台:

 3.测试三

 @Testvoid test3(){//查询年龄在20-30之间的用户QueryWrapper<User> wrapper = new QueryWrapper<>();wrapper.between("age",20,30);//区间Integer count = userMapper.selectCount(wrapper);//查询结果数System.out.println(count);}

看控制台:

 4.测试四

//模糊查询@Testvoid test4(){//查询年龄在20-30之间的用户QueryWrapper<User> wrapper = new QueryWrapper<>();//左和右  %e%wrapper.notLike("name","e").likeRight("email","t");List<Map<String, Object>> maps = userMapper.selectMaps(wrapper);maps.forEach(System.out::println);}

 看控制台sql:

 5.测试五

 @Testvoid test5(){//查询年龄在20-30之间的用户QueryWrapper<User> wrapper = new QueryWrapper<>();//id在子查询中查出来wrapper.inSql("id","select id from user where id < 3");List<Object> objects = userMapper.selectObjs(wrapper);objects.forEach(System.out::println);}

看控制台

 6.测试六

   //排序@Testvoid test6(){QueryWrapper<User> wrapper = new QueryWrapper<>();//通过id降序排序wrapper.orderByDesc("id");List<User> users = userMapper.selectList(wrapper);users.forEach(System.out::println);}

看控制台: