JPA概念
JPA(JAVA Persistence API)是sun官方提出的Java持久化规范。他为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据库。他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate,TopLink,JDO等ORM框架各自为营的局面。
JPA是在充分吸取了现有的Hibernate,TopLink等ORM框架的基础上发展而来的,具有易于使用、伸缩性强等优点。从目前的开发社区反映上来看,JPA受到了极大支持,其中包括了Spring与EJB3.0的开发团队。着眼未来几年的技术走向,JPA作为ORM领域标准化整合者的目标应该不难实现。
JPA包括以下三方面技术:
1、ORM映射元数据
JPA支持XML和JDK5.0注释两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据表中。
2、Java持久化API
用来操作实体对象,执行CRUD操作,框架在后台替我们完成了所有的事情,开发者可以从繁琐的JDBC和SQL代码中解脱出来。
3、查询语言
这是持久化操作中重要的一方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。
JPA依赖的jar文件
Hibernate核心包(8个文件)
hibernate-distribution-3.3.1.GA
--------------------------------------
hibernate3.jar
lib/bytecode/cglib/hibernate-cglib-repack-2.1_3.jar
lib/required/*.jar
Hibernate注解包(3个文件)
hibernate-annotations-3.4.0.GA
--------------------------------------
hibernate-annotations.jar
lib/ejb3-persistence.jar、hibernate-commons-annotations.jar
Hibernate针对JPA的实现包(3个文件)
hibernate-entitymanager-3.4.0.GA
--------------------------------------
hibernate-entitymanager.jar
lib/test/log4j.jar、slf4j-log4j12.jar
JPA配置文件
在类路径的META-INF目录下放置persistence.xml,文件名称固定。
文件内容如下:
<?xml version="1.0"?>
全局事务介绍:
两地数据库,A地现金减去100,B地增加100。需要利用全局事务。
转账
1--mysql update mysql set amount=amount-xx where id=xx
2--0racle update mysql set amount=amount+xx where id=yy
全局事务
JTA.getUserTrantion().begin();
connection = mysql
connection2 = orcale
connection --> update mysql set amount=amount-xx where id=xx
connection2 --> update mysql set amount=amount+xx where id=yy
JTA.getUserTrantion().commit();
二次提交协议
第一条预提交数据,把执行结果放入list。
第二条预提交数据,把执行结果放入list。
若都是true,则提交。
本地事务。
大部分情况下不涉及到两地数据库,则用本地事务。
<persistence-unit name="nbchinadb" transaction-type="RESOURCE_LOCAL">
transaction-type="RESOURCE_LOCAL" //标注使用本地事务
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/webrobot/archive/2010/01/13/5184207.aspx