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 返回