0


MyBatisPlus的链式查询LambdaQueryChainWrapper

LambdaQueryChainWrapper是MyBatis-Plus中的一个链式查询封装类,用于构建带有条件的查询语句。

  1. LambdaQueryChainWrapper
  • 可以通过链式调用一系列方法来构建查询条件。这些方法包括eq、ne、gt、ge、lt、le等等,用于设置等于、不等于、大于、大于等于、小于、小于等于等条件。
  • 可以用实体类的属性名作为参数,避免直接写数据库表字段名
  • 不支持 分组过滤。没法使用聚合函数。
  1. 使用场景
  • one() 查询一条记录
  • list() 查询多条记录
  • page() 分页查询
  1. 示例代码
/**
     *  链式查询:  
     *   1.使用lambda表达式 ,通过方法引用的方式来使用实体字段名的操作,
     *               避免直接写数据库表字段名时的错写名字
     *   2.不支持  分组过滤
     */@Testpublicvoidtest1(){System.out.println("------//链式查询:  使用 Lambda 表达式的链式查询对象--.one");LambdaQueryChainWrapper<User> lambdaQueryChainWrapper=newLambdaQueryChainWrapper<>(userMapper);//User one1=lambdaQueryChainWrapper.eq(User::getId,1).one();User one3=lambdaQueryChainWrapper.like(User::getName,"up").orderByDesc(User::getId).last("limit 1").one();//获取满足条件且排序后的第一条记录System.out.println(one3);System.out.println("---- //链式查询:  使用 Lambda 表达式的链式查询对象--.list");LambdaQueryChainWrapper<User> lambdaQueryWrapper1 =newLambdaQueryChainWrapper<>(userMapper);List<User> userList1=lambdaQueryWrapper1.ge(User::getAge,1).like(User::getName,"up").orderByDesc(User::getId).list();//获取满足条件的所有记录
        userList1.forEach(System.out::println);//需要重写user的toString()System.out.println("---//链式查询:  使用 Lambda 表达式的链式查询对象--分页查询 .page");int pageNum=1;int pageSize=2;LambdaQueryChainWrapper<User> lambdaQueryWrapper2 =newLambdaQueryChainWrapper<>(userMapper);Page<User> userPage=lambdaQueryWrapper2.ge(User::getAge,1).like(User::getName,"up").orderByDesc(User::getId).page(newPage<>(pageNum, pageSize));//返回分页对象List<User> userList2 = userPage.getRecords();//分页数据long total=userPage.getTotal();//数据总数System.out.println("total="+total);
        userList2.forEach(System.out::println);System.out.println("---链式查询不支持分组过滤。直接使用基础的QueryWrapper--分组过滤 groupBy  having");QueryWrapper<User> wrapper=newQueryWrapper<>();
        wrapper.select("version","sum(age) as num").groupBy("version").having("sum(age)>0").orderByDesc("num");//使用Map获取返回结果List<Map<String,Object>> list=userMapper.selectMaps(wrapper);
        list.forEach(System.out::println);}
标签: mybatis-plus

本文转载自: https://blog.csdn.net/qq_43513957/article/details/135972253
版权归原作者 qq_43513957 所有, 如有侵权,请联系我们删除。

“MyBatisPlus的链式查询LambdaQueryChainWrapper”的评论:

还没有评论