SELECt id,name,password,age,tel FROM user WHERe (age < ?)gt :大于 (>), 最终的 SQL 语句为
SELECt id,name,password,age,tel FROM user WHERe (age < ? AND age > ?)or() 就相当于我们 sql 语句中的 or 关键字 , 不加默认是 and ,最终的 sql 语句为 :
SELECt id,name,password,age,tel FROM user WHERe (age < ? OR age > ?)User::getAget, 为 lambda 表达式中的,类名 :: 方法名,最终的 sql 语句为 :
SELECt id,name,password,age,tel FROM user WHERe (age < ?)需求 : 查询数据库表中,年龄在 15 岁到18 岁之间的数据
@SpringBootTest
class MybatisplusApplicationTests {
@Autowired
private UserDao userDao;
@Test
public void testGetAll() {
LambdaQueryWrapperqw = new LambdaQueryWrapper();
qw.lt(User::getAge,18);
qw.gt(User::getAge,15);
List userList = userDao.selectList(qw);
System.out.println(userList);
}
需求:查询数据库表中,年龄小于10或年龄大于30的数据
@SpringBootTest
class MybatisplusApplicationTests {
@Autowired
private UserDao userDao;
@Test
public void testGetAll() {
LambdaQueryWrapperqw = new LambdaQueryWrapper();
qw.lt(User::getAge,10).or().gt(User::getAge,30);
List userList = userDao.selectList(qw);
System.out.println(userList);
}
需求:
查询数据库表中,根据输入年龄范围来查询符合条件的记录
用户在输入值的时候,
如果只输入第一个框,说明要查询大于该年龄的用户
如果只输入第二个框,说明要查询小于该年龄的用户
如果两个框都输入了,说明要查询年龄在两个范围之间的用户
@SpringBootTest
class MybatisplusApplicationTests {
@Autowired
private UserDao userDao;
@Test
public void testGetAll() {
//模拟页面传递过来的查询数据
UserQuery uq = new UserQuery();
uq.setAge("10");
uq.setAge2("30");
LambdaQueryWrapper lqw = new LambdaQueryWrapper();
lqw.lt(null!=uq.getAge2(),User::getAge, uq.getAge2());
lqw.gt(null!=uq.getAge(),User::getAge, uq.getAge());
List userList = userDao.selectList(lqw);
System.out.println(userList);
}
注:condition为boolean类型,返回true,则添加条件,返回false则不添加条件



