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

Spring Boot 数据库操作实战:MyBatis 让 CRUD 像 “查奶茶库存” 一样简单

上一篇咱们搞定了配置管理,其中数据库配置是核心 —— 但配置好数据库后,怎么往表里存数据、查数据?新手常被 JDBC 的繁琐代码劝退:加载驱动、写 SQL 字符串、处理结果集,少一步就报错,像奶茶店手动记账,要一笔一划写清楚 “珍珠剩多少、奶茶粉够不够”,又慢又容易错。

今天咱们讲 Spring Boot+MyBatis 的数据库操作实战 ——MyBatis 是企业级数据库操作的 “标配工具”,像奶茶店的 “智能库存管理系统”:不用手动写复杂 JDBC 代码,SQL 和 Java 代码分离,支持灵活查询,新手也能快速实现 CRUD(增删改查)、分页、条件查询,全程实战 + 避坑,衔接之前的图书管理系统案例,保持风格一致。

一、先搞懂:为什么选 MyBatis?(JDBC vs MyBatis 对比)

在 Spring Boot 里操作数据库,有 JPA、MyBatis、MyBatis-Plus 等选择,但 MyBatis 凭 “灵活 + 易上手” 成为企业首选,就像奶茶店选 “智能库存系统” 而不是 “手写账本”,核心优势看这张表:

对比维度 JDBC(手写账本) MyBatis(智能库存系统)
代码量 实现 CRUD 要写 50 + 行(加载驱动 + 处理结果) 核心代码仅需 5 行(接口 + SQL),其余自动生成
SQL 灵活性 可灵活写 SQL,但嵌入 Java 字符串易出错 SQL 单独放 XML / 注解,语法高亮,易维护
结果映射 手动封装 ResultSet→实体类(容易漏字段) 自动映射(字段名对应即可),支持自定义映射
分页 / 条件查询 手动拼分页 SQL、条件 SQL(繁琐) 支持插件(PageHelper)、条件构造器,一行代码实现
企业使用率 几乎不用(仅教学场景) 90% 以上企业后端项目在用

简单说:MyBatis 既保留了 SQL 的灵活性(想怎么查就怎么写),又解决了 JDBC 的繁琐问题,是 “新手能快速上手、老手能灵活扩展” 的数据库工具。

二、实操 1:Spring Boot 整合 MyBatis(5 分钟搭好 “库存系统”)

咱们以 “图书管理系统” 的book表为例,手把手整合 MyBatis,实现基础 CRUD,步骤超简单:

步骤 1:加依赖(装 “智能库存系统” 组件)

打开pom.xml,添加 MyBatis 和 MySQL 驱动依赖(衔接上一篇的数据库配置):

xml

<!-- MyBatis核心依赖 -->
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.3.1</version> <!-- 和Spring Boot 2.7.x兼容 -->
</dependency><!-- MySQL驱动(上一篇已加,确认存在即可) -->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope>
</dependency>

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

步骤 2:配 MyBatis(给 “库存系统” 设参数)

application-dev.yml里添加 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配置
mybatis:mapper-locations: classpath:mapper/*.xml  # Mapper XML文件存放路径(核心)type-aliases-package: com.example.springbootdemo.entity  # 实体类别名包(简化XML中的类名)configuration:map-underscore-to-camel-case: true  # 开启驼峰命名自动转换(book_name→bookName)log-impl: org.apache.ibatis.logging.stdout.StdOutImpl  # 打印SQL日志(方便调试)

步骤 3:建目录结构(“库存系统” 文件分类)

按以下结构创建文件,避免文件乱放导致 MyBatis 扫不到:

plaintext

src/main/java/com/example/springbootdemo/
├─ entity/          # 实体类(对应数据库表)
│  └─ Book
http://www.dtcms.com/a/592861.html

相关文章:

  • 电脑五笔打字入门口诀:3天学会五笔打字拆字
  • 自动驾驶中的B样条轨迹及B样条<->贝塞尔转换实现避障
  • 南阳市做网站网站开发是什么专业百度
  • 做外包的网站有哪些问题最好玩的网站
  • 阿尔及尔至广州直飞航线成功首航
  • 太原网站建设找山西云起时北京做网站优化的公司
  • 价值优先,敏捷致胜:超越“数据治理优先”的AI实施新范式
  • 2025年下半年软考高级系统架构师题目和答案
  • 基于多组学谱的疾病亚型分型与样本分类
  • 怎么做免费网站被收录营销推广的目标
  • java使用poi-tl模版+vform自定义表单生成word
  • MATLAB实现CNN(卷积神经网络)图像边缘识别
  • PDF 智能翻译工具:基于硅基流动 API实现
  • 中卫建设厅网站企业网站中( )是第一位的。
  • 八股已死、场景当立(场景篇-分布式定时任务篇)
  • Sources中main、vendors、runtime、polyfills、scripts这些是什么?
  • webpack+vite,vue如何定义公共环境变量?
  • SourceMap知识点
  • iPhone Delta模拟器游戏资源包合集中文游戏ROM+BIOS+Delta皮肤附游戏导入教程
  • 2.登录页测试用例
  • swagger和PostIn,开源免费接口管理工具选型指南
  • 【Python办公】Excel按列拆分界面工具-calamine极速版(2)
  • 基于TMS320F28069 DSP开发板实现RS485通信
  • UNCAUGHT_EXCEPTION CX_TREX_SERIALIZATION
  • AI开发革命:PyCharm科学计算模式重塑TensorFlow调试体验
  • 珠海做公司网站郑州信息网平台
  • 广州营销型网站建设价格中元建设集团网站
  • 阿里云 建设网站怎么样百度seo找哪里
  • 【Redis】特殊的数据类型
  • 基于web的养宠系统的实现2q26a2s2(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。