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

MyBatis-Plus 进阶实战:不用写 XML,CRUD + 复杂查询像 “点奶茶” 一样简单

上一篇咱们用 MyBatis 搞定了数据库 CRUD,但你有没有觉得还是有点麻烦?—— 写 XML 文件、手动拼条件 SQL、分页要装插件,像奶茶店的智能库存系统还需要手动输查询条件,不够省心。

今天咱们升级到 MyBatis-Plus(简称 MP)—— 它是 MyBatis 的 “增强版超级工具”,就像奶茶店的 “全自动库存机器人”:不用写 XML、不用手动拼 SQL,甚至不用写基础 CRUD 方法,用 API 就能搞定条件查询、分页、批量操作,开发效率直接翻倍,是企业级项目的 “效率神器”。

全程沿用图书管理系统案例,保持 “奶茶店类比 + 实战 + 避坑” 风格,新手也能直接复制代码跑通。

一、先搞懂:MyBatis-Plus 到底强在哪?(MyBatis vs MP 对比)

MyBatis-Plus 不是替换 MyBatis,而是在 MyBatis 基础上做了 “懒人增强”—— 保留 MyBatis 的灵活性,解决它的繁琐问题,核心优势用一张表说透:

对比维度 MyBatis(智能库存系统) MyBatis-Plus(全自动库存机器人)
基础 CRUD 要写 Mapper 接口 + XML SQL 继承 BaseMapper,零 SQL 实现 CRUD
条件查询 手动写 XML 拼 WHERE 条件(易出错) 条件构造器(QueryWrapper),API 链式拼条件
分页功能 需装 PageHelper 插件,手动开启分页 内置分页插件,一行代码实现分页
批量操作 需手动写批量 SQL 或循环调用单条 内置批量新增 / 修改 / 删除,一行代码搞定
逻辑删除 需手动写 DELETE+UPDATE SQL 配置后自动实现逻辑删除(改 status,不删数据)
企业使用率 90% 企业在用 95% 以上企业首选(中小团队尤其偏爱)

简单说:MyBatis-Plus 让你 “告别重复工作”,把精力放在业务逻辑上,而不是写重复的 SQL 和 XML。

二、实操 1:Spring Boot 整合 MyBatis-Plus(5 分钟搞定 “全自动机器人”)

咱们还是用图书管理系统的book表,手把手整合 MP,步骤比 MyBatis 更简单:

步骤 1:加 MP 依赖(装 “全自动库存机器人” 组件)

打开pom.xml,替换 MyBatis 依赖为 MP 依赖(MP 已包含 MyBatis,不用重复加):

xml

<!-- MyBatis-Plus核心依赖(替代MyBatis) -->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version> <!-- 稳定版,兼容Spring Boot 2.7.x -->
</dependency><!-- MySQL驱动(沿用之前的,确认存在即可) -->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope>
</dependency><!-- Lombok(之前已加,用于实体类简化) -->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional>
</dependency>

点 IDEA 右下角 “Import Changes”,依赖下载完成。

步骤 2:配 MP(给 “机器人” 设参数)

application-dev.yml里添加 MP 配置,替换之前的 MyBatis 配置:

yaml

spring:datasource:url: jdbc:mysql://localhost:3306/dev_book_db?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8username: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driver# MyBatis-Plus配置(替代MyBatis配置)
mybatis-plus:mapper-locations: classpath:mapper/*.xml # 保留XML路径(如需自定义SQL仍可用)type-aliases-package: com.example.springbootdemo.entity # 实体类别名包configuration:map-underscore-to-camel-case: true # 驼峰命名转换(默认开启,可省略)log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 打印SQL日志(调试用)global-config:db-config:id-type: AUTO # 主键自增(和表的AUTO_INCREMENT对应)logic-delete-field: isDeleted # 逻辑删除字段名(后面讲逻辑删除用)
http://www.dtcms.com/a/596526.html

相关文章:

  • 野狗算法详细原理,野狗算法公式,野狗算法求解目标函数极值
  • V-Ray 渲染高效优化指南
  • 商丘网站建设的公司哪家好菏泽网站建设
  • RobotFramework框架基本功能语法
  • 120. 三角形最小路径和
  • Redis(116)Redis的内存管理如何实现?
  • 如何通过中药饮片采购平台实现安全高效的全链路供应链建立?
  • 兴县做网站的公司wordpress登陆改图标和连接
  • CSV的读写
  • 【讨论】VR + 具身智能 + 人形机器人:通往现实世界的智能接口
  • android studio 里的 activity 和 layout 是怎么关联上的
  • 临桂区建设局网站北京seo做排名
  • 东阳建设局网站自适应网站建设多少钱
  • UI创作思想总结
  • 4、Python3.11新特性
  • Java-Spring入门指南(二十九)Android交互核心:按钮点击事件与Activity跳转实战
  • 云手机的两大核心技术
  • Postman VS swagger VS PostIn,接口管理工具选型指南
  • 【大数据技术05】数据加工
  • es 书籍检索-上篇
  • Electron 智能文件分析器开发实战适配鸿蒙
  • 鸿蒙文件操作
  • 手工做环保衣的网站湖北省工程建设信息官方网站
  • ShellCrash 安装与配置踩坑与解决日志
  • redis 的面试点总结
  • DS1302 简单介绍
  • JS DOM 操作与性能优化实战指南:构建高效可交互的页面结构
  • 【Java】基于策略模式 + 工厂模式多设计模式下:重构租房系统核心之城市房源列表缓存与高性能筛选
  • 学校门户网站作用收录查询工具
  • 如何在资源不足时快速补救项目延误