JPA学习笔记 [壹]

01_全面阐释和精彩总结JPA & 02_JPA开发环境和思想介绍 & 03_搭建JPA开发环境和全局事务介绍

(2009-12-30  11:20:23)

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" //标注使用本地事务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值