ORM
# JDBC 与 ORM 核心知识总结(最终版) ## 1. 什么是JDBC? **JDBC**(Java Database Connectivity)是Java语言中访问数据库的**基础API规范**。 ### JDBC
JDBC 与 ORM 核心知识总结(最终版)
1. 什么是JDBC?
JDBC(Java Database Connectivity)是Java语言中访问数据库的基础API规范。
JDBC操作示例
java
String sql = "INSERT INTO users (name, age) VALUES (?, ?)"; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setString(1, user.getName()); stmt.setInt(2, user.getAge()); stmt.executeUpdate();
核心步骤
① 定义SQL模板(使用?占位符)→ ② 创建PreparedStatement(预编译)→ ③ 填充参数 → ④ 执行SQL → ⑤ 手动释放资源
2. 什么是ORM?
ORM(Object-Relational Mapping,对象关系映射)是一种在面向对象语言和关系型数据库之间建立自动映射的技术。
ORM操作示例(Spring Data JPA)
java
// 定义实体 @Entity @Table(name = "users") public class User { @Id private Long id; private String name; private Integer age; } // 业务操作 User user = new User(); user.setName("张三"); user.setAge(25); userRepository.save(user); // 一行代码完成插入
3. JDBC 与 ORM 对比总表
| 维度 | JDBC | ORM |
|---|---|---|
| 本质 | Java访问数据库的底层API | 基于JDBC构建的上层映射框架 |
| 操作方式 | 手写SQL,手动填参,手动映射结果集 | 操作Java对象,框架自动生成SQL |
| 开发效率 | 低(大量重复代码) | 高(专注业务逻辑) |
| SQL控制力 | 完全控制 | 弱控制,自动SQL有时不够优化 |
| 运行性能 | 高(可手写最优SQL) | 较低(有框架转换开销) |
| 维护成本 | 高(字段变动改所有SQL) | 低(只改实体类) |
| 数据库迁移 | 困难(方言差异需手工改) | 简单(只换方言配置) |
| SQL注入防护 | 需手动使用PreparedStatement | 框架默认内置防护 |
| 适用场景 | 高性能、复杂报表、精细控制 | 标准CRUD、快速迭代 |
4. JDBC 与 ORM 的关系
ORM 建立在 JDBC 之上,是“底层实现”与“上层封装”的关系。
text
[应用层] ↓ [ORM框架 - Hibernate/MyBatis] ← 对象↔SQL自动转换 ↓ [JDBC API] ← 发送SQL、接收结果 ↓ [数据库驱动] → [数据库]
ORM底层本质上还是生成并执行JDBC代码。