Mybatis-Plus中的查询指定字段
目录
- MyBATis-Plus查询指定字段
- Mybatis-Plus只查询部分字段的三种方法
- 方法1
- 方法2
- 方法3
- 总结
Mybatis-Plus查询指定字段
select word from addition;
public void test3(){ android LambdaQueryWrapper<Addition> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.select(Addition::getWord); //方法一:通过stream流操作 List<String> list = additonService.list(queryWrapper).stream().map(Addition::getWord).collect(Collectors.toList()); //方式二:listObjs List<Object> list1 = additionService.listObjs(queryWrapper); }
- 方法一查询时执行的SQL语句为:
select * from addition;
- 方法二执行的SQL语句为:效率更高。
select word from addition;
Mybatis-Plus只查询部分字段的三种方法
方法1
只需要查询出name和phone两个字段:使用queryWrapper的select()方法指定要查询的字段
public void selectByWrapper1() { 编程客栈QueryWrapper<User> queryWrapper = new QueryWrapper<>()php; queryWrapper.select("name", "phone").eq("age",25); List<User> users = userMapper.selectList(queryWrapper); users.forEach(System.out::println); }
这种方法会造成除“name”之外的字段的值为null
方法2
查询出除age和address外其它所有字段的数据:同样使用queryWrapper的select()方法
public void selectByWrapper2() { QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.select(User.class, info -> !info.getColumn().equals("age") && !info.getColumn().equals("address")).eq("name","jack"); androidList<User> users = userMapper.selectList(queryWrapper); users.forEach(System.out::println); }
这种方法会造成除“age”"address"的字段的值为null
方法3
selectMaps
public void selectMaps2(){ js QueryWrapper<User> userQueryWrapper = Wrappers.query(); userQueryWrapper.select("avg(age) avg_age" , "min(age) min_age" , "max(age) max_age") .groupBy("age") .having("sum(age) < {0}" , 60); List<Map<String , Object>> mapList = userMapper.selectMaps(userQueryWrapper); mapList.forEach(System.out::println); }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论