Java语言(事务是什么?)跟事务有关的两个问题。(答得好考虑加分)

1)解释下事务是什么?最好举个例子。2)JDBC中事务是怎样的?举个例子,怎么处理的?3)假设增加个日志,Hibernate中的事务又是怎么处理的?4)声明式事务的取名怎... 1)解释下事务是什么?最好举个例子。
2)JDBC中事务是怎样的?举个例子,怎么处理的?
3)假设增加个日志,Hibernate中的事务又是怎么处理的?
4)声明式事务的取名怎么来的?怎么理解“声明式“?
展开
 我来答
lx514014
2011-07-13 · TA获得超过262个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:94.9万
展开全部
1.事务就是由几个步骤组成的业务操作,要么全部成功,要么全部失败。
2.JDBC中就是把事务设置为手动提交,等完成多个操作后,进行一次性提交。
3.要在Hibernate中使用事务,可以配置Hibernate事务为JDBCTransaction或者JTATransaction,这两种事务的生命周期不一样,可以在hibernate.cfg.xml中指定使用的是哪一种事务。以下配置为使用JDBC事务。注:如果不进行配置,Hibernate也会默认使用JDBC事务。

<session-factory>
……
<property name="hibernate.transaction.factory_class">
org.hibernate.transaction.JDBCTransactionFactory
</property>
……
</session-factory>
Hibernate 使用JDBC transaction处理方式如下所示:
Transaction tx = null;
try {
tx = sess.beginTransaction();

// do some work
...

tx.commit();
}
catch (RuntimeException e) {
if (tx != null) tx.rollback();
throw e; // or display error message
}
finally {
sess.close();
}
JTA(java Transaction API)是事务服务的JavaEE解决方案。本质上,它是描述事务接口的JavaEE模型的一部分。
JTA具有的3个接口:UserTransaction接口、TransactionManager接口和Transaction接口,这些接口共享公共的事务操作。UserTransaction能够执行事务划分和基本的事务操作,TransactionManager能够执行上下文管理。
在一个具有多个数据库的系统中,可能一个程序将会调用几个数据库中的数据,需要一种分布事务,或者准备用JTA来管理Session的长事务,那么就需要使用JTATransaction。
在hibernate.cfg.xml中配置JTA事务管理:
<session-factory>
……
<property name="hibernate.transaction.factory_class">
org.hibernate.transaction.JTATransactionFactory
</property>
……
</session-factory>
下面是一个实际应用的JTA示例:
// BMT(bean管理事务) idiom with getCurrentSession()
try {
UserTransaction tx = (UserTransaction)new InitialContext()
.lookup("java:comp/UserTransaction");

tx.begin();

// Do some work on Session bound to transaction
factory.getCurrentSession().load(...);
factory.getCurrentSession().persist(...);

tx.commit();
}
catch (RuntimeException e) {
tx.rollback();
throw e; // or display error message
}
4.声明式事务处理通过AOP的实现把事物管理代码作为方面封装来横向插入到业务代码中,使得事务管理代码和业务代码解藕。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式