
selectListimportcom.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;importjava.util.List;// 假设有一个 User 实体类ListUserusersuserMapper.selectList(newLambdaQueryWrapperUser().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);复杂条件示例LambdaQueryWrapperUserwrappernewLambdaQueryWrapperUser().eq(User::getStatus,1).and(w-w.gt(User::getAge,18).or().isNotNull(User::getEmail)).orderByDesc(User::getCreateTime).last(LIMIT 10);// 拼接原生 SQL 片段ListUserusersuserMapper.selectList(wrapper);条件动态拼接非常实用Stringname张;IntegerminAgenull;LambdaQueryWrapperUserwrappernewLambdaQueryWrapperUser().eq(User::getStatus,1).like(name!null,User::getName,name)// 条件为 true 时才拼接.gt(minAge!null,User::getAge,minAge);// minAge 为 null这行不会生效ListUserusersuserMapper.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()ApplyInfoModelapplyInfoModelapplyInfoService.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里方法的能力继承 ServiceImplYourMapper, 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()❌ 不支持代码简洁度高一般