MP的Wrapper默认查询是查询全部的列,如果需求是查询某几个列,如何操作?
当然MP也是提供了解决办法的。
/**
* 名字包含雨并且年龄小于40
* <p>
* 只显示id、name 两列
*/
@Test
public void selectByWrapper1() {
QueryWrapper<User> wrapper = new QueryWrapper();
wrapper.like("name", "雨").lt("age", 40)
.select("id","name");
List<User> users = userMapper.selectList(wrapper);
users.forEach(System.out::println);
}
/**
* 名字包含雨并且年龄小于40
* <p>
* 除了create_time、manager_id 其他列都显示
*/
@Test
public void selectByWrapper2() {
QueryWrapper<User> wrapper = new QueryWrapper();
wrapper.like("name", "雨").lt("age", 40)
.select(User.class, i -> !i.getColumn().equals("create_time")
&& !i.getColumn().equals("manager_id"));
List<User> users = userMapper.selectList(wrapper);
users.forEach(System.out::println);
}