allEq多条件查询⽅式更新mp执⾏的sql:
12. .链式编程,多条件查询
此外,还可以使⽤链式编程,直接在后⾯继续.调⽤别的⽅法。
@Test
void testQueryWrapper() {
//创建对象,泛型⾥加上实体对象
QueryWrapper wrapperUser = new QueryWrapper<>();
wrapperUser.e q("age", 29)
.eq("name", "wesson5")
.eq("id", 5);
List users = userMapper.selectList(wrapperUser);
System.out.println(users);
}
mp执⾏的sql:
13. or、and
默认情况下,在不调拨or()⽅法的情况下,是使⽤and()。
@Test
void testQueryWrapper() {
//创建对象,泛型⾥加上实体对象
QueryWrapper wrapperUser = new QueryWrapper<>();
wrapperUser.e q("age", 29)
.or()
.eq("name", "wesson5")
.or()
.eq("id", 5);
List users = userMapper.selectList(wrapperUser);
System.out.println(users);
}
mp执⾏的sql:
14. 嵌套or、嵌套and
查询sql经常会有嵌套or或者and的情况,可以这样写:
wrapperUser.e q("age", 29)
.or(
i -> i.eq("name", "wesson5")
.or()
.eq("id", 5)
);
List users = userMapper.selectList(wrapperUser);
System.out.println(users);
}
mp执⾏的sql:
15. in、notIn
等于sql⾥的 in和not in。
@Test
void testQueryWrapper() {
//创建对象,泛型⾥加上实体对象
QueryWrapper wrapperUser = new QueryWrapper<>();
wrapperUser.in("id", 1, 2, 3);
List users = userMapper.selectList(wrapperUser);
System.out.println(users);
}
mp执⾏的sql:
==> Preparing: SELECT id,name,age,email,create_time,update_time,version,deleted FROM user WHERE deleted=0 AND id IN (?,?,?) ==> Parameters: 1(Integer), 2(Integer), 3(Integer)
16. inSql、notinSql
inSql、notinSql可以⽤来⼦查询,⽐如 where id in (select * ... ...)
@Test
queryselectorall用法void testQueryWrapper() {
//创建对象,泛型⾥加上实体对象
QueryWrapper wrapperUser = new QueryWrapper<>();
wrapperUser.in("id", "select id from user where id < 5");
List users = userMapper.selectList(wrapperUser);
System.out.println(users);
}
mp执⾏的sql:
==> Preparing: SELECT id,name,age,email,create_time,update_time,version,deleted FROM user WHERE deleted=0 AND id IN (?)
==> Parameters: select id from user where id < '5'(String)
17. last
last可以直接拼接sql到最后,只能调⽤⼀次,多次调⽤以最后⼀次为准。
注意:有sql注⼊的风险,慎⽤。
wrapperUser.last("limit 1");
List users = userMapper.selectList(wrapperUser);
System.out.println(users);
}
mp执⾏的sql:
==> Preparing: SELECT id,name,age,email,create_time,update_time,version,deleted FROM user WHERE deleted=0 limit 1 ==> Parameters:
18. 指定要查询的列
只查询出指定的字段,⽐如"id", "name", "age"。
@Test
void testQueryWrapper() {
//创建对象,泛型⾥加上实体对象
QueryWrapper wrapperUser = new QueryWrapper<>();
wrapperUser.select("id", "name", "age");
List users = userMapper.selectList(wrapperUser);
System.out.println(users);
}
mp执⾏的sql:
==> Preparing: SELECT id,name,age FROM user WHERE deleted=0
==> Parameters:
以上是⼀些在业务开发中常⽤的,稍复杂些的条件查询,实际情况可能还有其他组合变化。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论