尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

mybatis-plus 常用方法

mybatis-plus 常用方法
📅 发布时间:2026/7/15 19:50:24

selectList

importcom.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;importjava.util.List;// 假设有一个 User 实体类List<User>users=userMapper.selectList(newLambdaQueryWrapper<User>().eq(User::getId,1001)// WHERE id = 1001.gt(User::getAge,18)// AND age > 18.like(User::getName,"张")// AND name LIKE '%张%'.orderByDesc(User::getCreateTime)// ORDER BY create_time DESC);

复杂条件示例

LambdaQueryWrapper<User>wrapper=newLambdaQueryWrapper<User>().eq(User::getStatus,1).and(w->w.gt(User::getAge,18).or().isNotNull(User::getEmail)).orderByDesc(User::getCreateTime).last("LIMIT 10");// 拼接原生 SQL 片段List<User>users=userMapper.selectList(wrapper);

条件动态拼接(非常实用)

Stringname="张";IntegerminAge=null;LambdaQueryWrapper<User>wrapper=newLambdaQueryWrapper<User>().eq(User::getStatus,1).like(name!=null,User::getName,name)// 条件为 true 时才拼接.gt(minAge!=null,User::getAge,minAge);// minAge 为 null,这行不会生效List<User>users=userMapper.selectList(wrapper);

LambdaQueryWrapper

方法说明示例
eq(字段, 值)等于=.eq(User::getId, 1)
ne(字段, 值)不等于!=.ne(User::getStatus, 0)
gt(字段, 值)大于>.gt(User::getAge, 18)
ge(字段, 值)大于等于>=.ge(User::getAge, 18)
lt(字段, 值)小于<.lt(User::getAge, 60)
le(字段, 值)小于等于<=.le(User::getAge, 60)
like(字段, 值)模糊匹配LIKE '%值%'.like(User::getName, "张")
likeLeft(字段, 值)左模糊LIKE '%值'.likeLeft(User::getName, "三")
likeRight(字段, 值)右模糊LIKE '值%'.likeRight(User::getName, "张")
in(字段, 集合)IN 查询.in(User::getId, Arrays.asList(1,2,3))
isNull(字段)为 NULL.isNull(User::getEmail)
isNotNull(字段)不为 NULL.isNotNull(User::getEmail)
orderByAsc(字段)升序.orderByAsc(User::getAge)
orderByDesc(字段)降序.orderByDesc(User::getCreateTime)
between(字段, 值1, 值2)区间查询.between(User::getAge, 18, 60)
and(条件)嵌套 AND.and(w -> w.gt(User::getAge, 18).lt(User::getAge, 60))
or()OR.eq(User::getId, 1).or().eq(User::getId, 2)
select(字段...)指定查询列.select(User::getId, User::getName)

这些方法都是mapper层的 是mapper. 调用的

在学习的时候, 发现 lambdaQuery().one()

lambdaQuery().one()

ApplyInfoModelapplyInfoModel=applyInfoService.lambdaQuery().eq(ApplyInfoModel::getProcessInstId,list.get(0).getProcessInstId()).one();

lambdaQuery().one() 和 selectOne() 都是 MyBatis-Plus 中查询单条记录的方法,但它们所属的层级不同、使用方式不同、行为也有差异。

对比项lambdaQuery().one()selectOne()
所属层级Service 层(链式查询)Mapper 层
调用者继承ServiceImpl的 Service继承BaseMapper的 Mapper
参数通过链式.eq()、.like()等拼接条件传入一个Wrapper对象
返回值实体对象(或null)实体对象(或null)
场景lambdaQuery().one()selectOne()
查到 0 条返回null返回null
查到 1 条返回该记录返回该记录
查到 多条抛出TooManyResultsException返回第一条,不抛异常

继承 ServiceImpl 层的service 也具有调用mybatis-plus里方法的能力
继承 ServiceImpl<YourMapper, YourEntity> 后,你的 Service 可以直接使用:

getOne(wrapper)// 查询单条getOne(wrapper,false)// 查询单条,多条时不抛异常list(wrapper)// 条件查询列表count(wrapper)// 条件统计page(page,wrapper)// 分页查询
getOne(wrapper)// 查询单条getOne(wrapper,false)// 查询单条,多条时不抛异常list(wrapper)// 条件查询列表count(wrapper)// 条件统计page(page,wrapper)// 分页查询
lambdaQuery()// 返回 LambdaQueryChainWrapper,支持 .eq().like().one() 等链式调用lambdaUpdate()// 返回 LambdaUpdateChainWrapper,支持链式更新query()// 返回 QueryChainWrapperupdate()// 返回 UpdateChainWrapper
继承ServiceImpl不继承(普通 Service)
调用 MP 方法✅ 直接调用,无需注入 Mapper❌ 需要手动@AutowiredMapper
链式查询✅ 支持lambdaQuery()❌ 不支持
代码简洁度高一般

相关新闻

  • OpenClaw 2.6.6 Win10本地技能调度器零基础部署指南
  • 车载测试培训选择指南:从CANoe实操到就业实战全解析
  • 美度保养配件要从瑞士进口吗-解析原厂配件供应流程与时长权威公示(2026年7月最新) - 亨得利钟表维修中心

最新新闻

  • 怎么提高品牌在豆包的提及率:适合北京补习机构门店的GEO服务商哪家好?全程零代码SAAS操作
  • 《Java 100 天进阶之路》第60.3篇:多线程生产环境避坑清单(2026版)
  • MySQL 命令操作
  • 从赛题到实战:剖析三端口DC-DC变换器的双模式能量管理策略
  • JAVA基于MC协议实现三菱PLC数据采集与监控
  • 08-LCD1602驱动实战:从时序解析到自定义字符显示

日新闻

  • 告别启动盘残留:用Diskpart彻底清除U盘EFI分区与恢复完整空间
  • 2026 年宜春诚信的塑料缠绕膜厂家哪个好,缠绕膜背后的秘密:你不知道的成本陷阱 - 领域鉴赏官
  • Arch ECS 入门指南:10分钟掌握C#高性能数据驱动架构

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号