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

从 JDBC 到 MyBatis 再到 Spring Boot:数据库访问的演进之路

在 Java 后端开发中,操作数据库是绕不开的核心任务。从最原始的 JDBC,到轻量级 ORM 框架 MyBatis,再到与 Spring Boot 深度集成的自动化配置,数据库访问方式经历了从“繁琐”到“简洁”的演进。今天,我们就一起回顾这段旅程,并理解它们各自的定位与协作方式。

一、JDBC:一切的起点
JDBC(Java Database Connectivity)是 Java 提供的标准数据库访问 API。它通过驱动程序与数据库通信,是最底层、最通用的方式。

基本流程:

Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
// 1. 加载驱动(JDBC 4.0+ 可省略)
Class.forName("com.mysql.cj.jdbc.Driver");

// 2. 获取连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");// 3. 执行查询
ps = conn.prepareStatement("SELECT id, name FROM users WHERE id = ?");
ps.setInt(1, 1);
rs = ps.executeQuery();// 4. 处理结果
while (rs.next()) {System.out.println(rs.getString("name"));
}

} finally {
// 5. 手动关闭资源(极易遗漏!)
if (rs != null) rs.close();
if (ps != null) ps.close();
if (conn != null) conn.close();
}

痛点:
代码冗长,重复模板多;
手动管理连接和事务;
SQL 与 Java 代码耦合,难以维护。
于是,ORM 框架应运而生。

二、MyBatis:SQL 与对象的优雅桥梁
MyBatis 是一个半自动化的 ORM 框架,它不完全屏蔽 SQL,而是让开发者专注写 SQL,同时自动完成 Java 对象与数据库记录的映射。

核心优势:
SQL 可控:复杂查询、动态 SQL(如 )灵活编写;
结果自动映射:无需手动解析 ResultSet;
解耦 SQL 与代码:SQL 写在 XML 或注解中。
示例(注解方式):

@Mapper
public interface UserMapper {
@Select("SELECT * FROM users WHERE id = #{id}")
User selectById(Long id);

@Update("UPDATE users SET name = #{name} WHERE id = #{id}")
void update(User user);

}

适用场景:
对 SQL 性能要求高、需要复杂查询或遗留系统改造的项目。
但 MyBatis 仍需手动配置数据源、事务管理器等。这时,Spring Boot 出场了。

三、Spring Boot:自动化配置,开箱即用
Spring Boot 通过 starter 机制 和 自动配置(AutoConfiguration),极大简化了 MyBatis 与数据库的集成。

  1. 添加依赖(Maven)
org.springframework.bootspring-boot-starter-web org.mybatis.spring.bootmybatis-spring-boot-starter3.0.3 mysqlmysql-connector-javaruntime
  1. 配置文件:application.yml

spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC
username: root
password: password
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.zaxxer.hikari.HikariDataSource # 默认使用 HikariCP 连接池

mybatis:
mapper-locations: classpath:mapper/*.xml # XML 映射文件位置
type-aliases-package: com.example.demo.entity # 实体类别名
configuration:
map-underscore-to-camel-case: true # 数据库下划线 → Java 驼峰

关键点:
spring.datasource.* 由 Spring Boot 自动配置 DataSource Bean;
mybatis.* 由 mybatis-spring-boot-starter 自动配置 SqlSessionFactory 和 MapperScanner;
无需写一行 Java 配置代码!
3. 直接注入 Mapper 使用

@Service
public class UserService {
@Autowired
private UserMapper userMapper;

public User getById(Long id) {return userMapper.selectById(id); // 自动开启事务、获取连接、映射结果
}

}

四、配置文件最佳实践
敏感信息外置:密码不要硬编码,可用 application-prod.yml + 环境变量;
连接池调优:HikariCP 是默认选择,可配置 maximum-pool-size、connection-timeout;
多环境支持:

application-dev.yml(开发)

spring:
datasource:
url: jdbc:mysql://dev-db:3306/test

application-prod.yml(生产)

spring:
datasource:
url: jdbc:mysql://prod-db:3306/test

启动时指定:--spring.profiles.active=prod

五、结语
从手写几十行 JDBC 到一行 @Mapper 注解搞定数据库操作,技术的进步让我们更专注于业务本身。
理解 JDBC 是知其然,掌握 MyBatis 是知其所以然,而用好 Spring Boot 配置,则是工程效率的飞跃。
无论技术如何演进,核心思想不变:解耦、复用、自动化。
愿你在数据库访问的路上,越走越轻松!

http://www.zskr.cn/news/142597.html

相关文章:

  • 什么是AI知识库?如何搭建一个AI知识库?
  • 2025年船用疏水阀品牌权威排行榜,船用附件/船用空气管头/船用疏水阀/船用安全阀/船用防浪阀/船用疏水阀生产厂家推荐排行榜 - 品牌推荐师
  • 2025年评价高的电动护理床/家庭护理床TOP品牌厂家排行榜 - 品牌宣传支持者
  • 2025年GEO优化公司选型指南:精准匹配需求的优质服务商推荐 - 品牌评测官
  • 2025实时云渲染产业全景洞察与趋势报告
  • 工业软件费用全解析:从入门到定制,如何精明投资?
  • 黄金突破4400美元:AI多因子模型解码地缘风险与货币宽松下的2025年第50次历史新高
  • 中文拼音首字母获取方案
  • 大模型如何改变数据分析?从SQL生成到业务洞察的实战经验,值得收藏!
  • mouhid!MouHid_ReadComplete调用mouclass!MouseClassServiceCallback函数第二种情形放到缓存区域中
  • CosyVoice 部署实战
  • 技术领先、性价比高、售后服务完善,盘点国内外激光粒度仪推荐厂家(品牌) - 品牌推荐大师1
  • 基于微服务架构的企业身份与访问管理系统设计与实现
  • 安全的轮胎推荐:最新五大专业测评 - 品牌测评家
  • 污染物环境行为的“逸度”密码:模型理论与高级应用
  • AI元人文与岐金兰:价值共生时代的思想者与文明构想
  • 生态学中的R语言实战:数据探索、回归与排序分析详解
  • 推荐几个高内涵筛选的品牌?从国产到进口,这份清单帮你快速锁定 - 品牌推荐大师1
  • 设计模式:责任链模式
  • 人工智能项目成果的9个标准
  • CNAS软件测评机构【Gatling查询参数和表单数据queryParam、formParam和multipartFormData参数处理方式】
  • 第三方CMA软件评测机构Gatling超时设置connectionTimeout、requestTimeout参数使用
  • 开题报告写到凌晨三点?百考通AI平台,3分钟给你一份“能过审”的专业初稿!
  • AI训练图片视频数据集供应商—卓特视觉用亿级语料加速模型商业化 - 品牌2026
  • 当10年架构师拿起AI:不是写不动了,是写得太快了
  • 区块链 Web3 项目的费用
  • 智能决策引擎:高效处理来源标签
  • 格(Lattice)
  • 基于SpringBoot家政保洁预约系统设计与实现
  • 选产后康复理疗机器人别乱挑!小理家这 3 大核心优势必看