多条件查询
# 条件查询
- QueryWrapper查询
@Test
void Query(){
QueryWrapper qw = new QueryWrapper();
qw.lt("id",3);
List<User> l = userDao.selectList(qw);
System.out.println(l);
}
1
2
3
4
5
6
7
2
3
4
5
6
7
- Lambda
@Test
void Query(){
QueryWrapper<User> qw = new QueryWrapper<User>();
qw.lambda().lt(User::getId,2);
List<User> l = userDao.selectList(qw);
System.out.println(l);
}
1
2
3
4
5
6
7
2
3
4
5
6
7
这种方式是为了避免手动填写列名出错,如果你有十足把握不出错,也能这样写。
- LambdaQueryWrapper
@Test
void Query(){
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
lqw.lt(User::getId,2);
List<User> l = userDao.selectList(lqw);
System.out.println(l);
}
1
2
3
4
5
6
7
2
3
4
5
6
7
这种方式比较常用,省略了第二种方式的步骤
AND多条件查询:支持链式调用如 lqw.lt(User::getId,2).gt(User::getId,0) OR: lqw.lt(User::getId,2).or().gt(User::getId,0)
# Null条件判断
LambdaQueryWrapper
@Test
void Query(){
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
lqw.lt(User::getId,2);
List<User> l = userDao.selectList(lqw);
System.out.println(l);
}
1
2
3
4
5
6
7
2
3
4
5
6
7
# Count(*)
@Test
void Query(){
QueryWrapper<User> lqw = new QueryWrapper<User>();
lqw.select("count(*) as count, username");
lqw.groupBy("username");
List<Map<String,Object>> l = userDao.selectMaps(lqw);
System.out.println(l);
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8