05.数据持久化.txt
UP 返回
1.JPA简介
JPA(Java Persistence API)是用于管理Java EE和Java SE环境中的持久化,以及对象/关系映射的Java API
最新规范为 "JSR 338:Java Persistence 2.1"
实现:EclipseLink ,Hibernate ,Apache OpenJPA
2.JPA核心概念
实体 表示关系数据库中的表
每个实体实例对应于该表中的行
类必须用javax.persistence.Entity注解
类必须有一个public或protected的无参构造函数
实体实例被当做值以分离对象方式进行传递(例如通过会话bean的远程业务接口),则该类必须实现Serializable接口
唯一的对象标识符:简单主键(javax.persistence.Id) 复合主键(javax.persistence.EmbeddedId和javax.persistence.IdClass)
关系 一对一:@OneToOne
一对多:@OneToMany
多对一:@ManyToOne
多对多:@ManyToMany
EntityManager接口 定义用于与持久性上下文交互的方法
创建和删除持久实体实例,通过实体的主键查找实体
允许在实体上运行查询
eg1:(获取EntityManager实例)
@PersistenceUnit
EntityManagerFactory emf;
EntityManager em;
@Resource
UserTransaction utx;
...
em=emf.createEntityManager();
try{
utx.begin();
em.persist(SomeEntity);
em.merge(AnotherEntity);
em.remove(ThirdEntity);
utx.commit();
}catch(Exception e){
utx.rollback();
}
eg2:(查找实体)
@PersistenceContext
EntityManager em;
public void enterOrder(int custID,CustomerOrder newOrder){
Customer cust=em.find(Customer.class,custID);
cust.getOrders().add(newOrder);
newOrder.setCustomer(cust);
}
3.Spring Data JPA简介
是更大的Spring Data家族的一部分,对基于JPA的数据访问层的增强支持,更容易构建基于使用Spring数据访问技术栈的应用程序
常用接口:
CrudRepository 增删改查
PagingAndSortingRepository 分页排序
自定义接口(extends Repository<User,Long>)
4.Spring Data JPA,Hibernate与Spring Boot集成
参项目
application.properties中添加:
#使用H2控制台
spring.h2.console.enabled=true
然后就可以通过localhost:8080/h2-console/访问h2数据库
DOWN 返回