mybatis-plus只查询部分字段的三种实现方式
作者:凯酱
文章介绍了三种使用queryWrapper的select()方法查询数据库时指定要查询的字段的方法,方法1查询name和phone字段,其他字段值为null;方法2查询除age和address外的其他字段,这两个字段值为null;方法3使用selectMaps方法
mybatis-plus只查询部分字段
方法1
只需要查询出name和phone两个字段:使用queryWrapper的select()方法指定要查询的字段
public void selectByWrapper1() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
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");
List<User> users = userMapper.selectList(queryWrapper);
users.forEach(System.out::println);
}
这种方法会造成除“age”"address"的字段的值为null
方法3
selectMaps
public void selectMaps2(){
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);
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
