91嫩草国产线免费观看_欧美日韩中文字幕在线观看_精品精品国产高清a毛片_六月婷婷网 - 一级一级特黄女人精品毛片

Java 編程 ,事務管理的作用

首頁 > 公司事務2022-10-31 06:58:59

java的框架spring中的事務攔截器和事務管理器都是干嘛的?

事務管理器是運用AOP的原理,自動在目標方法插入事務代碼。Spring中的事務管理器有很多種:

JDBC DataSource事務管理器:
org.springframework.jdbc.datasource.DataSourceTransactionManager

Hibernate的事務管理器:
org.springframework.orm.hibernate.HibernateTransactionManager

JDO的事務管理器:
org.springframework.orm.jdo.JdoTransactionManager

JTA事務管理器:
org.springframework.transaction.jta.JtaTransactionManager

OJB事務管理器:
org.springframework.orm.ojb.PersistenceBrokerTransactionManager

Java語言(事務是什么?)跟事務有關的兩個問題。(答得好考慮加分)

1)解釋下事務是什么?最好舉個例子。n2)JDBC中事務是怎樣的?舉個例子,怎么處理的?n3)假設增加個日志,Hibernate中的事務又是怎么處理的?
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的實現把事物管理代碼作為方面封裝來橫向插入到業務代碼中,使得事務管理代碼和業務代碼解藕。

JAVA框架是否方便的事務管理功能?

事務管理一般來說都定義在業務邏輯層。框架中應該實現對業務邏輯對象事務的簡單配置甚至是零配置。接觸過的兩個框架中,一個需要在配置完一個業務邏輯對象時,在事務管理的配置文件中加上一句簡單的配置即可,另一個是框架中實現了幾個基本的業務邏輯對象,并對這幾個對象實現了事務管理的配置,開發的時候定義的業務邏輯對象都是繼承自這幾個基本對象,也就省去了事務管理的配置。

java如何進行事務管理,什么時候用事務控制

Java種運用了大量的事務管理,就是對一系列的數據庫操作進行統一的提交或回滾操作,比如說做一個轉賬功能,要更改帳戶兩邊的數據,這時候就必須要用事務才能算是嚴謹的做法。要么成功,要么失敗,保持數據一致性。如果中間有一個操作出現異常,那么回滾之前的所有操作。
在strut2框架中為了避免多個用戶同時訪問服務器,都會使用事務管理來管理訪問的人數。

相關推薦:

最高額保證法律依據(民法典后保證最高額擔保的規定)

中外合資經營企業的資本(中外合資企業注冊資本金要求)

車輛抵押貸款(汽車抵押貸款需要什么條件)

國有企業設立的資料(國有企業注冊條件)

怎么注冊公司流程(公司注冊流程及需要的材料)