我们理解和利用的JavaEE规范有JSP,Servlet,JSTL,JMS,JTA,JPA,EJB等等。

JAP是一个规范,与任何的ORM框架都不冲突,底层可以选择任意的ORM框架。

ORM框架:让程序能用面向工具的办法去操作数据库。
各种措辞都有自己的ORM框架,。
Java的ORM框架是最多的。

jsp和jpa区别JPA及事务治理 AJAX

无论哪种Java的ORM框架,都会主动遵守JPA规范。

JPA示意图

Hibernate API和JPA API的比拟

persist.xml基本配置

利用JPA进行数据持久化的操作

管理数据库连接的配置文件,不能用ORM框架本身供应的,如hibernate.cfg.xml,而是利用JPA规范定义的配置文件。
该配置文件必须放在META-INF目录下,文件名必须是persistence.xml

程序中该当利用persistence,EntityManagerFactory,EntityManager,EntityTransaction等JPA的API。

须要导入JPA的jar包,位于hibernate/lib/jpa下。

查询操作

保存操作

数据库事务

Hibernate是JDBC的轻量级封装,本身不具备管理事务的能力。

在事务管理层,hibernate将其委托给底层的jdbc或JTA以实现事务的管理和调度。

数据库事务特性

事务是访问并可能操作各种数据项的一个数据库操作的序列。
具有以下的特性:

原子性

同等性

隔离

持久性

数据库采取日志来担保事务的原子性,同等性和持久性,采取锁机制来实现事务的隔离性。

数据库事务并发引发的问题

事务的隔离性不完备,就会导致各种并发问题,这些问题紧张归纳为以下几类:

更新丢失(lost update)

脏读(dirty read)

不可重复读(non-repeatableread)

幻读(phantom read)

事务的隔离级别

为了避免并发问题的涌现,一担保数据的完全性和同等性,必须实现事务的隔离性。

ANSI/IOS SQL92标准定义了一些数据库操作的隔离级别:

序列化级别

可重复读

读已提交

读未提交

隔离级别及其对应的可能涌现或不可能涌现的征象如下表

Hibrenate中的事务

对付不同的DBMS,详细运用的隔离级别可能不同。

可以在hibernate.properties或hibernate.cfg.xml文件中配置事务的隔离级别,在hibernate.propertiesp配置如下:

Hibernate.connection.isolation=4

1:读未提交

2:读已提交

4:可重复提交

8:序列化