ORM 核心概念

ORM(Object-Relational Mapping,对象 - 关系映射) 是一种编程技术,用于解决 面向对象编程(OOP) 与 关系型数据库(RDB) 之间的 “范式不匹配” 问题。

  • 本质:通过框架自动将 Java 对象(如 User、Order)与数据库表(如 user、order)建立映射关系,开发者无需手动编写 SQL 语句,直接通过操作对象来实现对数据库的 CRUD(增删改查)。
  • 核心目标:消除 “对象模型” 与 “关系模型” 之间的差异,让开发者以面向对象的思维操作数据库,而非面向 SQL 的思维。

在沒有 ORM 時,每次操作数据库都要编写 SQL 语句,以及对象与 ResultSet 的转换逻辑(如 user.setId(rs.getInt(“id”)))。数据库表结构变更时,所有相关的 SQL 和转换代码都需要修改。

**而 ORM 框架封装这些底层细节,解决了上述问题

核心組成

  1. 映射規則:定义对象与表、属性与字段的映射关系,
  2. 会话管理:提供与数据库的连接会话(如 Hibernate 的 Session、MyBatis 的 SqlSession),负责对象的 CRUD 操作
  3. SQL 生成器:自动根据对象操作生成对应的 SQL 语句
  4. 事务管理:整合数据库事务,支持声明式事务
  5. 类型转换:自动处理 Java 类型与数据库类型的转换

主流框架

  • Hibernate:全自动 ORM,高度封装 SQL,开发者无需写 SQL;遵循 JPA 规范。
  • MyBatis:半自动 ORM,需手动编写 SQL,但提供灵活的映射;更接近原生 SQL。
  • JPA:是规范(接口),而非具体实现;Hibernate 是其最主流的实现。