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

(MyBatis-Plus) LambdaQueryWrapper 应用

1️⃣ 作用

  • LambdaQueryWrapper 是 MyBatis-Plus 提供的条件构造器

  • 用于拼装 SQL 查询条件,避免手写 SQL

  • 使用实体类的属性来指定字段,安全可靠

  • 支持链式调用(Builder 风格),代码清晰可读


2️⃣ 构造流程

  1. 创建容器

    • 首先创建一个 LambdaQueryWrapper 对象,作为条件容器

  2. 添加筛选条件

    • 可以根据不同需求添加条件,如:

      • 等于、不等于

      • 大于、小于、大于等于、小于等于

      • 模糊匹配

      • 包含某些值

      • 区间查询

    • 可以根据条件动态添加,灵活控制查询逻辑

  3. 添加排序条件

    • 支持升序和降序

    • 可链式添加多个排序字段

    • 排序顺序影响最终结果:先排序的字段优先


3️⃣ 常用查询方法

  1. 查询多条记录

    • 查询符合条件的实体列表

    • 可以选择返回实体对象、字段映射的 Map 或单列值列表

  2. 查询单条记录

    • 查询符合条件的一条记录

    • 可以控制多条结果时是否报错或返回第一条

    • 也可以通过主键直接查询单条记录

  3. 分页查询

    • 支持分页,通过指定页码和每页条数获取结果

    • 返回分页对象,可获取总记录数、总页数、当前页记录等信息

  4. 记录统计与存在性判断

    • 可以统计符合条件的记录总数

    • 可以判断是否存在符合条件的记录


4️⃣ 使用技巧

  • 链式调用,使条件构造清晰易读

  • 使用 Lambda 表达式引用实体属性,避免写错字段名

  • 动态添加条件,根据实际参数决定是否加条件

  • 可将筛选、排序、分页组合使用,实现灵活查询


5️⃣ 总体流程

  1. 创建 LambdaQueryWrapper 容器

  2. 添加筛选条件

  3. 添加排序条件

  4. 选择查询方式(多条、单条、分页、统计等)

  5. 执行查询

  6. 返回结果

  7. 示例

    import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
    import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    import com.baomidou.mybatisplus.core.metadata.IPage;
    import java.util.List;public class ProductCategoryService {// 假设这是 MyBatis-Plus 的 Serviceprivate ProductCategoryMapper productCategoryMapper;public IPage<ProductCategory> getActivePhoneCategories(int pageNum, int pageSize) {// 1️⃣ 创建 LambdaQueryWrapper 容器LambdaQueryWrapper<ProductCategory> wrapper = new LambdaQueryWrapper<>();// 2️⃣ 添加筛选条件wrapper.eq(ProductCategory::getStatus, "启用")  // 状态为启用.like(ProductCategory::getName, "手机"); // 名称包含“手机”// 3️⃣ 添加排序条件wrapper.orderByAsc(ProductCategory::getSort).orderByDesc(ProductCategory::getCreateTime);// 4️⃣ 选择查询方式(分页查询)Page<ProductCategory> page = new Page<>(pageNum, pageSize);// 5️⃣ 执行查询IPage<ProductCategory> result = productCategoryMapper.selectPage(page, wrapper);// 6️⃣ 返回结果return result;}// 查询多条记录示例public List<ProductCategory> listActiveCategories() {LambdaQueryWrapper<ProductCategory> wrapper = new LambdaQueryWrapper<>();wrapper.eq(ProductCategory::getStatus, "启用").orderByAsc(ProductCategory::getSort);return productCategoryMapper.selectList(wrapper);}// 查询单条记录示例public ProductCategory getCategoryByName(String name) {LambdaQueryWrapper<ProductCategory> wrapper = new LambdaQueryWrapper<>();wrapper.eq(ProductCategory::getName, name);return productCategoryMapper.selectOne(wrapper);}
    }
    

http://www.dtcms.com/a/479367.html

相关文章:

  • 深圳建设培训中心网站网站建设的技术团队
  • 免费vi模板网站九易建网站的建站模板
  • 今天我们学习mysql数据库的恢复与备份
  • 激光东莞网站建设广州建设公司
  • FastbuildAI后端数据库模块注册分析
  • 怎么在58建设企业的网站火烈鸟门户网站开发
  • 用户研究不足会如何扭曲需求
  • 【SDK】SDK详解
  • 如何针对你的网站做搜索优化seo如何优化网站步骤
  • 网站开发准备工作ICP备案网站服务内容
  • 厦门网站建设价可以自己设计房子的游戏
  • 19.2 说说 TCP 的三次握手?
  • 专注集团网站建设wordpress 文章存档
  • 罗湖商城网站设计公司做网站销售怎么开发客户
  • 【uniapp】体验优化:开源工具集 uni-toolkit 发布
  • 多点低压差分(M-LVDS)线路驱动器和接收器_MS2111
  • 自助定制网站开发公司中山网站建设技术
  • 域名的种类及查询网站怎样建设旅游网站
  • QGIS遥感影像数据提取与统计
  • 郑州网站seo排名磁县企业做网站推广
  • html做旅游网站小程序制作免费吗
  • 东莞市企业网站建设平台wordpress 链接分类
  • 深入浅出:实现一个生产级网页预览图提取组件
  • Download:Blaxcut - Barbershop Hair Salon WordPress Theme
  • 临桂区住房和城乡建设局门户网站建网站用自己的主机做服务器
  • 深圳做网站建设在线测评网站怎么做
  • Next.js企业级应用开发:SSR、ISR与性能监控方案
  • 基站计数器与KPI:移动通信网络性能评估的核心引擎
  • 微信小程序学习(六)--多媒体操作
  • 专业网站设计的公司价格吴忠市建设局网站