主要作用:防误写
案例一:
Java代码:
@Test
public void selectLambada(){
//三种创建lambda查询对象的方式
//LambdaQueryWrapper<User> lambda = new QueryWrapper<User>().lambda();
//LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
LambdaQueryWrapper<User> lambdaQuery = Wrappers.<User>lambdaQuery();
lambdaQuery.like(User::getName,"雨").lt(User::getAge,40);
//where name like '%雨%'
List<User> userList = userMapper.selectList(lambdaQuery);
userList.forEach(System.out::println);
}
案例二:
姓名为王姓并且(年龄小于40或邮箱不能为空)
name like '王%' and (age < 40 or email is not null)
Java代码:
@Test
public void selectLambada2(){
LambdaQueryWrapper<User> lambdaQuery = Wrappers.<User>lambdaQuery();
lambdaQuery.likeRight(User::getName,"王")
.and(lqw -> lqw.lt(User::getAge,40).or().isNotNull(User::getEmail));
List<User> userList = userMapper.selectList(lambdaQuery);
userList.forEach(System.out::println);
}
输出结果:
DEBUG==> Preparing: SELECT id,name,age,email,manager_id,create_time FROM user WHERE (name LIKE ? AND (age < ? OR email IS NOT NULL))
DEBUG==> Parameters: 王%(String), 40(Integer)
TRACE<== Columns: id, name, age, email, manager_id, create_time
TRACE<== Row: 1088248166370832385, 王天风, 25, wtf@baomidou.com, 1087982257332887553, 2019-02-05 11:12:22.0
DEBUG<== Total: 1
User(id=1088248166370832385, name=王天风, age=25, email=wtf@baomidou.com, managerId=1087982257332887553, createTime=2019-02-05T11:12:22)
案例三:
Java代码:
@Test
public void selectLambada3(){
List<User> userList = new LambdaQueryChainWrapper<>(userMapper)
.like(User::getName,"雨").ge(User::getAge,20).list();
userList.forEach(System.out::println);
}
输出结果:
DEBUG==> Preparing: SELECT id,name,age,email,manager_id,create_time FROM user WHERE (name LIKE ? AND age >= ?)
DEBUG==> Parameters: %雨%(String), 20(Integer)
TRACE<== Columns: id, name, age, email, manager_id, create_time
TRACE<== Row: 1094590409767661570, 张雨琪, 39, zyq@baomidou.com, 1088248166370832856, 2019-01-14 09:15:15.0
TRACE<== Row: 1094592041087729666, 刘红雨, 28, lhy@baomidou.com, 1088248166370832856, 2019-01-11 14:20:20.0
DEBUG<== Total: 2
User(id=1094590409767661570, name=张雨琪, age=39, email=zyq@baomidou.com, managerId=1088248166370832856, createTime=2019-01-14T09:15:15)
User(id=1094592041087729666, name=刘红雨, age=28, email=lhy@baomidou.com, managerId=1088248166370832856, createTime=2019-01-11T14:20:20)