查询专栏:select语句中不列出全部字段
1. 第一种形式
- 通过queryWrapper调用select方法,在select方法中添加需要查询的列
/**
* 1. 名字包含雨并且年齡小于40
* sql:name like '%雨%' and age < 40
*/
@Test
public void selectByWrapperSupper() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// queryWrapper.like("name", "雨").lt("age", 40);
queryWrapper.select("id", "name")
.like("name", "雨")
.lt("age", 40);
List<User> userList = userMapper.selectList(queryWrapper);
userList.forEach(System.out::println);
}
/*
sql形式:SELECT id,name FROM user WHERE name LIKE ? AND age < ?
这种情况,你查询什么列,如果有值就会查询出来,没查询的列的值默认为null
*/
2. 第二种形式
- 通过排除列操作
- !tableFieldInfo.getColumn()
.equals(“create_time”)
这句话的意思是,create_time这列不查询
/**
* 2. 名字包含雨并且年齡小于40
* sql:name like '%雨%' and age < 40
*/
@Test
public void selectByWrapperSupper2() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// queryWrapper.like("name", "雨").lt("age", 40);
queryWrapper.like("name", "雨")
.lt("age", 40)
.select(User.class, tableFieldInfo -> !tableFieldInfo.getColumn()
.equals("create_time")
&& !tableFieldInfo.getColumn()
.equals("manager_id"));
List<User> userList = userMapper.selectList(queryWrapper);
userList.forEach(System.out::println);
}
/*
sql形式:SELECT id,name FROM user WHERE name LIKE ? AND age < ?
*/
想学习更多微服务、分布式、中间件、数据库、项目快速构建等系列技术
请访问http://gblfy.com
让我们一起进步!!!