当前位置: 首页 > news >正文

使用MyBatis Plus的QueryWrapper实现复杂的SQL查询

QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("del_flag", "0")
            .and(wrapper -> wrapper.like("user_name", "粥").or().like("nick_name", "粥"))
            .in("user_id", Arrays.asList(1892512443619762178L, 1892565898380111873L))
            .ne("user_id", 1)
            .eq("tenant_id", "000000");

List<SysUser> userList = sysUserMapper.selectList(queryWrapper);

代码说明:
eq(“del_flag”, “0”) 对应 SQL 中的 u.del_flag = ‘0’

and(wrapper -> wrapper.like(“user_name”, “粥”).or().like(“nick_name”, “粥”)) 对应 (u.user_name LIKE ‘%粥%’ OR u.nick_name LIKE ‘%粥%’)

in(“user_id”, Arrays.asList(…)) 对应 u.user_id IN (1892512443619762178, 1892565898380111873)

ne(“user_id”, 1) 对应 u.user_id <> 1

eq(“tenant_id”, “000000”) 对应 u.tenant_id = ‘000000’

注意事项:
确保SysUser实体类中的属性与数据库字段对应

如果使用Lambda方式,可以更安全地避免字段名写错:

QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(SysUser::getDelFlag, "0")
            .and(wrapper -> wrapper.like(SysUser::getUserName, "粥")
                                 .or()
                                 .like(SysUser::getNickName, "粥"))
            .in(SysUser::getUserId, Arrays.asList(1892512443619762178L, 1892565898380111873L))
            .ne(SysUser::getUserId, 1)
            .eq(SysUser::getTenantId, "000000");
http://www.dtcms.com/a/92961.html

相关文章:

  • macbook电脑如何清理键盘防止误触
  • SpringBoot 3+ Lombok日志框架从logback改为Log4j2
  • 深入浅出Spring-Boot-3.x.pdf
  • 游戏引擎学习第184天
  • Linux操作系统7- 线程同步与互斥7(RingQueue环形队列生产者消费者模型改进)
  • RK3568 设备树基础语法讲解
  • QLoRA和LoRA 微调
  • RK3568笔记八十一: Linux 小智AI聊天机器人移植
  • ctfshow做题笔记—栈溢出—pwn73、pwn74
  • 在 Mermaid 流程图里“驯服”quot;的魔法指南!!!
  • Maven仓库配置
  • React 组件之间的通信
  • Axure项目实战:智慧城市APP(完整交互汇总版)
  • 解析信息归属地与网络安全的关联
  • windows下安装sublime
  • 黑盒测试与白盒测试详解
  • 保姆级教程 在linux上启动Docker并且使用IntelliJ DockerCompose一键部署Springboot应用 常见命令
  • 产品生产流程优化
  • ​SVN 常用命令速查表
  • Linux中安装elasticsearch和kibana
  • 01-系统编程
  • 不同YOLO版本之间对比关系
  • 如何管理间接需求?团队实践分享
  • el-select开启filterable模式,限制输入框输入类型
  • 分享本周所学——三维重建算法3D Gaussian Splatting(3DGS)
  • ECharts各类炫酷图表/3D柱形图
  • three.js3D模型场景编辑器
  • Linux实现生产者消费者模型
  • Rust从入门到精通之精通篇:23.高级并发模式
  • 【每日算法】Day 9-1:贪心算法精讲——区间调度与最优选择(C++实现)