1,修改
@Test
public void test05(){
UpdateWrapper<UserInfo> updateWrapper = new UpdateWrapper<>();
updateWrapper.like("name","li")
.and(i->i.gt("create_time","2023-04-18 15:00:37").or().isNull("sex"));
UserInfo userInfo = new UserInfo().setName("李武").setUpdateTime(new Date());//需要修改的字段信息
userInfoMapper.update(userInfo,updateWrapper);
// ==> Preparing: UPDATE t_user SET name=?,update_time=? WHERE is_delete=0 AND (name LIKE ? AND (create_time > ? OR sex IS NULL))
// ==> Parameters: 李武(String), 2023-04-19 15:27:02.404(Timestamp), %li%(String), 2023-04-18 15:00:37(String)
updateWrapper.set("name","李武").set("update_time",new Date());//需要修改的字段信息
userInfoService.update(updateWrapper);
//等同于
userInfoMapper.update(null,updateWrapper);
// ==> Preparing: UPDATE t_user SET name=?,update_time=? WHERE is_delete=0 AND (name LIKE ? AND (create_time > ? OR sex IS NULL))
// ==> Parameters: 李武(String), 2023-04-19 15:27:02.404(Timestamp), %li%(String), 2023-04-18 15:00:37(String)
LambdaUpdateWrapper<UserInfo> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.like(UserInfo::getName,"li")
.and(i->i.gt(UserInfo::getCreateTime,"2023-04-18 15:00:37").or().isNull(UserInfo::getSex));
lambdaUpdateWrapper.set(UserInfo::getName,"李武");
userInfoService.update(lambdaUpdateWrapper);
//等同于
userInfoMapper.update(null,lambdaUpdateWrapper);
// ==> Preparing: UPDATE t_user SET name=? WHERE is_delete=0 AND (name LIKE ? AND (create_time > ? OR sex IS NULL))
// ==> Parameters: 李武(String), %li%(String), 2023-04-18 15:00:37(String)
}
2,查询
@Test
public void test06(){
String username = "李";
String createTime = "2023-04-18 15:00:37";
QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.select("id","name","sex");//返回列
queryWrapper.inSql("id","select id from t_user where id < 10"); //子查询
if (StringUtils.isNotBlank(username)){
queryWrapper.like("name",username);
}
if (createTime!=null){
queryWrapper.ge("create_time",createTime);
}
queryWrapper.orderByAsc("id").orderByDesc("sex");//排序
userInfoService.list(queryWrapper);
//等同于
userInfoMapper.selectList(queryWrapper);
// ==> Preparing: SELECT id,name,sex FROM t_user WHERE is_delete=0 AND (id IN (select id from t_user where id < 10) AND name LIKE ? AND create_time >= ?) ORDER BY id ASC,sex DESC
// ==> Parameters: %李%(String), 2023-04-18 15:00:37(String)
LambdaQueryWrapper<UserInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.like(StringUtils.isNotBlank(username),UserInfo::getName,username)
.ge(createTime!=null,UserInfo::getCreateTime,createTime);
userInfoService.list(lambdaQueryWrapper);
//等同于
userInfoMapper.selectList(lambdaQueryWrapper);
// ==> Preparing: SELECT id,name,sex,create_time,update_time,is_delete FROM t_user WHERE is_delete=0 AND (name LIKE ? AND create_time >= ?)
// ==> Parameters: %李%(String), 2023-04-18 15:00:37(String)
}
3,删除
@Test
public void test07(){
LambdaQueryWrapper<UserInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.between(UserInfo::getCreateTime,"2017-08-02 12:46:54","2018-08-02 12:46:54")
.isNotNull(UserInfo::getSex);
userInfoService.remove(lambdaQueryWrapper);
//等同于
userInfoMapper.delete(lambdaQueryWrapper);
// ==> Preparing: UPDATE t_user SET is_delete=1 WHERE is_delete=0 AND (create_time BETWEEN ? AND ? AND sex IS NOT NULL)
// ==> Parameters: 2017-08-02 12:46:54(String), 2018-08-02 12:46:54(String)
}
这里是做了逻辑删除,具体可查看 https://blog.youkuaiyun.com/qq_36636312/article/details/130226147