7、Mybatis-Plus condition的使用
mybatis Plus condition 使用
2023-09-27 14:26:41 时间
第一篇:1、Mybatis-Plus 创建SpringBoot项目
第二篇:2、Mybatis-Plus 测试增、删、改、查
第三篇:3、Mybatis-Plus 自定义sql语句
第四篇:4、Mybatis-Plus 通用service的操作
第五篇:5、Mybatis-Plus 常用注解
第六篇:6、Mybatis-Plus wrapper的使用
1、condition
- 在真正开发的过程中,组装条件是常见的功能,而这些条件数据来源于用户输入,是可选的,因此我们在组装这些条件时,必须先判断用户是否选择了这些条件,若选择则需要组装该条件,若没有选择则一定不能组装,以免影响SQL执行的结果
2、使用带condition参数的重载方法构建查
@Test
public void test10(){
/**
*StringUtils.isNotBlank()判断某字符串是否不为空且长度不为0且不由空白符(whitespace) 构成
* SELECT uid AS id,user_name AS name,age,email,is_deleted FROM t_user WHERE is_deleted=0 AND (user_name LIKE ? AND age <= ?)
*/
String username = "a";
Integer ageBegin = null;
Integer ageEnd = 30;
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like(StringUtils.isNotBlank(username),"user_name",username)
.ge(ageBegin != null,"age",ageBegin)
.le(ageEnd != null,"age",ageEnd);
List<User> list = userMapper.selectList(queryWrapper);
list.forEach(System.out::println);
}
3、LambdaQueryWrapper
@Test
public void test11(){
/**
* 防止字段写错
* SELECT uid AS id,user_name AS name,age,email,is_deleted FROM t_user WHERE is_deleted=0 AND (user_name LIKE ? AND age <= ?)
*/
String username = "a";
Integer ageBegin = null;
Integer ageEnd = 30;
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StringUtils.isNotBlank(username),User::getName,username)
.ge(ageBegin != null,User::getAge,ageBegin)
.le(ageEnd != null,User::getAge,ageEnd);
List<User> users = userMapper.selectList(queryWrapper);
users.forEach(System.out::println);
}
@Test
public void test12(){
/**
* 将用户名中包含有a并且(年龄大于20或邮箱为null)的用户信息修改
* UPDATE t_user SET user_name=?,email=? WHERE is_deleted=0 AND (user_name LIKE ? AND (age > ? OR email IS NULL))
*/
LambdaUpdateWrapper<User> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.like(User::getName,"a")
.and(i-> i.gt(User::getAge,20).or().isNull(User::getEmail));
updateWrapper.set(User::getName,"唐僧").set(User::getEmail,"tangseng@qq.com");
int rs = userMapper.update(null,updateWrapper);
System.out.println(rs);
}
相关文章
- Mybatis -- 批量添加 -- insertBatch
- 使用mybatis操作mysql数据库SUM方法返回NULL解决
- MyBatis实战系列之(3)
- mybatis 嵌套查询子查询column传多个参数描述
- mybatis和mybatis-plus同时使用问题处理
- mybatis判断是否为空或null
- 解决mybatis-plus无法根据多个主键增删查改
- 神了!阿里 P8 纯手写出了这份 10W 字的 MyBatis 技术原理实战开发手册
- mybatis-plus代码生成器生成
- MyBatis Plus 添加多租户功能后 对某个Mapper方法 忽略多租户处理 使用注解 @InterceptorIgnore(tenantLine = "true")
- Mybatis-Plus 3.0
- MyBatis Plus中使用or和and问题
- Mybatis Map保存到数据库,Mybatis Map动态同步表,Mybatis Map Foreach插入数据库
- mybatis-plus代码生成器,mybatis-plus3.4自动生成代码,mybatis-plus3.4分页
- 2019 年度最受欢迎中国开源软件,请支持 Mybatis Plus
- MyBatis在insert插入操作时返回主键ID的配置
- MyBatis-Plus详细讲解(整合spring Boot)
- springboot-集成MySQL+druid+mybatis-plus总结
- SpringBoot+mybatis-plus+mysql实现简单后台管理demo
- (2022最新版本)SpringBoot 整合 MyBatis Plus 代码生成器
- 聊聊MyBatis缓存机制
- 使用MyBatis-Plus-Generator实现逆向生成java实体类
- 解决SpringBoot整合Mybatis和Mybatis-Plus不能公用(版本兼容性问题)
- mybatis 一对一association ,一对多collection