赞
踩
/** * 链式查询: * 1.使用lambda表达式 ,通过方法引用的方式来使用实体字段名的操作, * 避免直接写数据库表字段名时的错写名字 * 2.不支持 分组过滤 */ @Test public void test1(){ System.out.println("------//链式查询: 使用 Lambda 表达式的链式查询对象--.one"); LambdaQueryChainWrapper<User> lambdaQueryChainWrapper=new LambdaQueryChainWrapper<>(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 = new LambdaQueryChainWrapper<>(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 = new LambdaQueryChainWrapper<>(userMapper); Page<User> userPage=lambdaQueryWrapper2.ge(User::getAge, 1) .like(User::getName, "up") .orderByDesc(User::getId) .page(new Page<>(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=new QueryWrapper<>(); 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); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。