mybatis-plus select查询语句默认是查全部字段,有两种方法可以指定要查询的字段:
1、user表只需要查询出name和age两个字段的数据,可以使用queryWrapper的select()方法指定要查询的字段
@Test
public void selectByWrapper() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select("name", "age");
List<User> users = userMapper.selectList(queryWrapper);
users.forEach(System.out::println);
}
2、user表要查询出除card_id和create_time外其它所有字段的数据,同样也是使用queryWrapper的select()方法,建议使用第二种写法,否则可能报null指针异常。
@Test
public void selectByWrapper() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select(User.class, info -> !info.getColumn().equals("card_id")
&& !info.getColumn().equals("create_time"));//填的是数据库字段名
List<User> users = userMapper.selectList(queryWrapper);
users.forEach(System.out::println);
}
@Test
public void selectByWrapper2() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select(User.class, info -> !info.getProperty().equals("cardId")
&& !info.getColumn().equals("createTime"));//填的是实体类字段名,个人认为用这个好一些
List<User> users = userMapper.selectList(queryWrapper);
users.forEach(System.out::println);
}
如果使用类 QueryWrap,写法如下:
QueryWrap<User> wrapper = = new QueryWrap<>();
wrapper.lambda().select(i->!i.getColumn().equals("PUBLIC_CONTENT"));