何为JPA
JPA即Java Persistence API,这门技术是06年05月份由SUN官方提出的Java持久化规范
1、它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据
它的出现主要是为了简化现有的持久化开发工作和整合ORM技术
结束现在Hibernate、TopLink、JDO等ORM框架各自为营的局面
2、JPA只是一套规范,不是产品,JPA规范是由Hibernate的作者主导制定的
JPA是在充分吸收现有ORM框架的基础上发展而来的,具有易于使用、伸缩性强等优点
采用JPA开发的应用可以运行在实现JPA规范的持久化产品中,如Hibernate、TopLink等
3、JPA不是一种新的ORM框架,它的出现只是用于规范ORM技术,不能取代现有ORM框架
相反,采用JPA开发时仍要用到ORM框架,但此时开发的应用不再依赖于某个持久化提供商
应用可以在不修改代码的情况下在任何JPA环境下运行,真正做到低耦合,可扩展的程序设计
JPA的思想
JPA的总体思想和现有Hibernate、TopLink、JDO等ORM框架大体一致。总的来说包括以下3方面的技术:
1、ORM映射元数据
JPA支持XML和JDK5注解两种元数据的形式
所谓元数据,是描述对象和表之间的映射关系
框架根据元数据将实体对象持久化到数据库表中
2、Java持久化API
用来操作实体对象,执行CRUD操作
框架在后台替我们完成所有的事情
开发者可以从繁琐的JDBC和SQL代码中解脱出来
3、查询语言
通过面向对象而非面向数据库的查询语言查询数据
避免程序的SQL语句紧密耦合
这是持久化操作中很重要的一方面
JPA所依赖的Hibernate的JAR文件
1、Hibernate核心包(8个文件)
hibernate-distribution-3.3.1.GA//..//Hibernate3.jar
hibernate-distribution-3.3.1.GA//..//lib//required//*.jar
hibernate-distribution-3.3.1.GA//..//lib//bytecode//cglib///hibernate-cglib-repack-2.1_3.jar
2、Hibernate注解包(3个文件)
hibernate-annotations-3.4.0.GA//..//hibernate-annotations.jar
hibernate-annotations-3.4.0.GA//..//lib//ejb3-persistence.jar
hibernate-annotations-3.4.0.GA//..//lib//hibernate-commons-annotations.jar
3、Hibernate针对JPA的实现包(3个文件)
hibernate-entitymanager-3.4.0.GA//..//hibernate-entitymanager.jar
hibernate-entitymanager-3.4.0.GA//..//lib//test//log4j.jar
hibernate-entitymanager-3.4.0.GA//..//lib//test//slf4j-log4j12.jar
4、合计14个JAR文件
注意:這些JAR文件不要放在含有中文或空格的路径下
下面是示例代码,这是一个Java Project
首先是位于类路径的META-INF下的persistence.xml文件
然后是用到的一个枚举类Gender.java
采用Annotation映射元数据的实体类Person.java
最后是用到的JUnit4单元测试类JPADemoTest.java