锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩二区三区,ga∨成人网,成人亚洲精品久久久久软件http://www.aygfsteel.com/midstr/category/31536.html浜虹敓綹芥湁璦卞鐨勬剰澶? 鎻″湪鎵嬭!鐨勯ⅷ綆忎篃鏈?.. 紿佺劧鏂蜂簡綬氣斺斾漢鐢熺附鏈夎ū澶氱殑宸у悎錛? 鍏╂騫寵綞篃鍙兘鏈?.. 鏈変氦婊欑殑涓澶?/description>zh-cnSun, 18 May 2008 19:47:42 GMTSun, 18 May 2008 19:47:42 GMT60Spring 綬ㄧ▼寮忎簨鍕欑鐞?zzhttp://www.aygfsteel.com/midstr/archive/2008/05/16/200797.html鍚戝乏璧板悜鍙寵蛋鍚戝乏璧板悜鍙寵蛋Fri, 16 May 2008 02:22:00 GMThttp://www.aygfsteel.com/midstr/archive/2008/05/16/200797.htmlhttp://www.aygfsteel.com/midstr/comments/200797.htmlhttp://www.aygfsteel.com/midstr/archive/2008/05/16/200797.html#Feedback0http://www.aygfsteel.com/midstr/comments/commentRss/200797.htmlhttp://www.aygfsteel.com/midstr/services/trackbacks/200797.htmlhttp://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=2398

閫欓倞浠ヤ竴鍊嬬啊鍠殑渚嬪瓙渚嗙ず綃凷pring鐨勪簨鍕欑鐞嗭紝灝嶆柤浜嬪嫏綆$悊瀹氱京錛屾垜鍊戜嬌鐢⊿pring鎻愪緵鐨凞efaultTransactionDefinition銆?

銆銆浠DBC DataSource鐐轟緥錛屾垜鍊戝彲浠ヤ嬌鐢╫rg.springframework.jdbc.datasource.DataSourceTransactionManager錛圥latformTransactionManager鐨勪竴鍊嬪鐝撅級浣滅偤鎴戝戠殑浜嬪嫏綆$悊鍝★紝鎴戝戝湪Bean瀹氱京妾斾腑閰嶇疆錛屼甫灝嘍ataSource娉ㄥ叆緄﹀畠錛屼緥濡傦細

銆浠g⒓:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/TestDB</value>
        
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value></value>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
</bean>
<bean id="userDAO" class="onlyfun.caterpillar.UserDAO">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
</bean>
</beans>

銆銆鎴戝戝畾緹╀簡涓鍊嬬啊鍠殑DAO鐗╀歡錛屽皣transactionManager鑸嘾ataSource娉ㄥ叆鑷沖叾涓紝UserDAO濡備笅錛?

銆浠g⒓:

UserDAO.java
package onlyfun.caterpillar;
import javax.sql.DataSource;
import org.springframework.jdbc.core.*;
import org.springframework.transaction.*;
import org.springframework.transaction.support.*;
import org.springframework.dao.*;
public class UserDAO {
private DataSource dataSource;
private PlatformTransactionManager transactionManager;
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
public void setTransactionManager(PlatformTransactionManager transactionManager) {
this.transactionManager = transactionManager;
}
public void insertUser(User user) {
.
}
}

銆銆insertUser()鏂規硶涓紝鎴戝戝皣瀵︾従User鐨勫瓨鍎詫紝涓︿嬌鐢ㄤ簨鍕欑鐞嗭紝棣栧厛鐪嬬湅鐩存帴浣跨敤trransactionManager濡備綍瀵︾従浜嬪嫏錛屾垜鍊戦渶瑕佷簨鍕欏畾緹╋紝浣滅偤紺虹瘎錛岄欓倞鍏堜嬌鐢⊿pring闋愯ō鐨勫嵆鍙細DefaultTransactionDefinition錛屾垜鍊戠殑紼嬪紡紺虹瘎濡備笅錛?

銆浠g⒓:

DefaultTransactionDefinition def = new DefaultTransactionDefinition();
TransactionStatus status 
= transactionManager.getTransaction(def);
try {
JdbcTemplate jdbcTemplate 
= new JdbcTemplate(dataSource);
jdbcTemplate.update(
"INSERT INTO USER VALUES('Spring008', 'caterpillar', 'M', 29)");
jdbcTemplate.update(
"INSERT INTO USER VALUES('Spring009', 'momor', 'F', 26)");
jdbcTemplate.update(
"INSERT INTO USER VALUES('Spring010, 'beckyday', 'F', 35)");
catch (DataAccessException ex) {
transactionManager.rollback(status); 
// 涔熷彲浠ュ煼琛宻tatus.setRollbackOnly();
        throw ex;
}
transactionManager.commit(status);

銆銆鍦ㄤ笂闈㈢殑紼嬪紡涓紝鎴戝戠収甯稿煼琛屾垜鍊戠殑SQL錛堢偤浜嗙啊鍖栵紝鎴戝戠洿鎺ュ皣璩囨枡瀵湪SQL涓簡錛岃屼笉鏄緸User鐗╀歡涓彇寰楋級錛屾敞鎰忓埌鎴戝戞晠鎰忓湪鏈寰屼竴琛孲QL涓璖pring010灝戝浜嗕竴鍊?' 錛岄欎嬌寰桽QL鍙ュ瓙涓嶅悎瑾炴硶錛屽洜鑰岄犳垚DataAccessException錛堝皝瑁濅簡SQLException錛夛紝閫欏嬩緥澶栬catch鍗濉婃崟鎹夛紝鍥犺屽煼琛宺ollback()鍙栨秷涔嬪緦鐨凷QL錛屽鏋滄矑鏈夌櫦鐢熼尟瑾わ紝鍓囨渶寰屾垜鍊戜嬌鐢╟ommit()渚嗘彁浜ゆ搷浣溿?

銆銆鍙︿竴鍊嬬啊渚跨殑鏂規硶鏄嬌鐢═ransactionTemplate錛屽畠灝佽浜嗕笂闈㈢殑浜嬪嫏嫻佺▼錛岄忛亷callback渚嗗畬鎴愪簨鍕欙紝渚嬪錛?

銆浠g⒓:

TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
transactionTemplate.execute(
new TransactionCallbackWithoutResult() {
public void doInTransactionWithoutResult(TransactionStatus status) {
JdbcTemplate jdbcTemplate 
= new JdbcTemplate(dataSource);
jdbcTemplate.update(
"INSERT INTO USER VALUES('Spring008', 'caterpillar', 'M', 29)");
jdbcTemplate.update(
"INSERT INTO USER VALUES('Spring009', 'momor', 'F', 26)");
jdbcTemplate.update(
"INSERT INTO USER VALUES('Spring010, 'beckyday', 'F', 35)");
}
});

銆銆閫欓倞浣跨敤TransactionCallbackWithoutResult錛屼甫鍦ㄥ畠鐨刣oInTransactionWithoutResult()涓茶SQL鎿嶄綔錛屽鏋滃煼琛屼腑鐧肩敓渚嬪錛屽墖涔嬪墠鎵鏈夌殑鎿嶄綔鍙栨秷錛屽惁鍓囨渶寰岃嚜鍕曟彁浜ゆ搷浣溿傚鏋滄搷浣滃畬鎴愭偍鎯寵榪斿洖緄愭灉鐗╀歡錛屽墖鍙互浣跨敤TransactionCallback錛屼甫瀵︾従鍏禿oInTransaction()錛屼緥濡傦細

銆浠g⒓:

TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
Object result 
= transactionTemplate.execute(
new TransactionCallback() {
public Object doInTransaction(TransactionStatus status) {
// 浣滀竴浜涙搷浣?br />             // 鏀墮泦鐐虹祼鏋滅墿浠?nbsp;resultObject

return resultObject;
});


]]>
主站蜘蛛池模板: 南部县| 宣恩县| 曲麻莱县| 门头沟区| 无棣县| 石阡县| 三亚市| 长沙县| 余江县| 汉沽区| 鹤庆县| 宝丰县| 长子县| 布尔津县| 北川| 宜都市| 海宁市| 西昌市| 桐城市| 宣化县| 渝中区| 外汇| 安阳市| 南澳县| 五家渠市| 沭阳县| 岳阳县| 铜川市| 喀什市| 张家川| 浮山县| 东光县| 孝义市| 神池县| 巴马| 八宿县| 随州市| 垦利县| 五台县| 西和县| 潜江市|