jpa使用规范说明书2.0.doc
文本预览下载声明
JPA
使用规范说明书
2017年月26日
版本记录
序号 版本 更改时间 更改内容描述 作者 1.0 2017-10-26 新建 吴海林 2 2.0 2017-11-10 评审后 吴海林
1、
1.1 什么是JPA规范
JPA规范(java持久化API)JPA和Hibernate等框架一样,都是java持久化解决方案,负责把数据保存到数据库。不同的是,JPA只是一种标注,规范,而不是框架。JPA自己没有具体的实现。使用JPA后,程序不在依赖于某种ORM框架。具体实现有Eclipselink, OpenJPA等。
优秀的框架出现相比以上供应商,使得有了很大的提升。1.2 JPA原理实现
我们知道JPA 只是一个规范,下面的 JPA Provider 可以由不同的 ORM 框架提供。ORM 框架可以根据映射关系,操作PO对象,自动生成增查改删的 SQLJPA包括以下3方面的技术:? 1. ORM映射元数据,JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中;? 2. JPA的API,用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。? 3. 查询语言,这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。
优点也是有很多:继承Repository接口,在注解中书写JPQL语句即可访问数据库;支持方法名解析方式访问数据库;使用Predicate支持动态查询
JPA当问数据库主要工作
1.得到JDBC驱动程序
2.得到持久性提供者相关类库和配置文件
3.提供实体类
4.使用Persistence、EntityManagerFactory和Entity等接口。
2、PA使用
2.1 使用前的准备配置
1.1 原生配置方式-persistence
Maven依赖:
dependency
groupIdorg.eclipse.persistence/groupId
artifactIdjavax.persistence/artifactId
version2.0.0/version
/dependency
dependency
groupIdorg.eclipse.persistence/groupId
artifactIdeclipselink/artifactId
version2.0.0/version
/dependency
配置文件(MATA-INF下的.xml)
怎么去掉persistence.xml的实体类配置?
使用了?persistence 配置文件,去掉“persistenceUnitName”属性,添加“packagesToScan”属性,persistence.xml配置文件中的persistence-unit名字照样保留,但是?persistence 配置文件中不需要对实体类进行配置,会自动识别。
2.1.2 SpringDataJPA+hibernate(使用最多)
M:除相关包)dependency
groupIdorg.springframework.data/groupId
artifactIdspring-data-jpa/artifactId
/dependency
dependency
groupIdorg.hibernate/groupId
artifactIdhibernate-entitymanager/artifactId
/dependency
dependency
groupIdorg.hibernate.javax.persistence/groupId
artifactIdhibernate-jpa-2.0-api/artifactId
/dependency
配置文件(定义EntityManagerFactory实体类管理
2.1.3 SpringBoot+JPA
dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-jpa/artifactId /dependency
SpringBoot通过@EnableAutoConfiguration?入
显示全部