目录
一、前言介绍
JPA(Java Persistence API)是Java EE和Jakarta EE中的ORM(对象关系映射)标准规范,用于简化Java应用程序与数据库的交互。
二、核心特点
-
标准化ORM框架:统一了Java中的数据库访问方式
-
面向对象操作:开发者主要操作Java对象而非SQL语句
-
注解驱动:通过注解配置对象与表的映射关系
-
内置缓存:提供一级缓存(持久化上下文)
-
JPQL语言:面向对象的查询语言
三、主要组件
1. 实体类(Entity):使用`@Entity`注解的普通Java类,对应数据库表
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue
private Long id;
private String name;
// getters/setters
}
2. EntityManager:核心接口,负责实体对象的CRUD操作
// 保存实体
entityManager.persist(user);
// 查询实体
User user = entityManager.find(User.class, 1L);
3. 持久化单元(Persistence Unit):在persistence.xml中配置的数据源和实体类集合
注解 | 用途 |
---|---|
@Entity | 声明持久化类 |
@Table | 指定映射的表名 |
@Id | 标识主键 |
@GeneratedValue | 主键生成策略 |
@Column | 字段与列映射 |
@OneToMany | 一对多关系 |
@ManyToOne | 多对一关系 |
四、优势长处
-
开发效率高:减少约70%的JDBC样板代码
-
可移植性强:支持多种数据库(Hibernate/EclipseLink等实现)
-
自动优化:延迟加载、缓存管理等
-
类型安全:编译时检查代替运行时SQL错误
五、查询方式
1. JPQL查询
TypedQuery<User> query = em.createQuery(
"SELECT u FROM User u WHERE u.age > :age", User.class);
query.setParameter("age", 18);
2. Criteria API:类型安全的编程式查询
3. 原生SQL查询:复杂场景下的SQL直接调用
六、应用场景
-
Spring Data JPA的底层规范
-
企业级应用的持久层解决方案
-
需要快速开发的数据库应用
-
需要切换数据库的项目
七、总结归纳
JPA通过抽象化数据库操作,让开发者能更专注于业务逻辑而非数据访问细节。