锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲宅男精品一区在线观看,yy6080亚洲一级理论,亚洲系列中文字幕http://m.tkk7.com/midstr/category/31536.html浜虹敓綹芥湁璦卞鐨勬剰澶? 鎻″湪鎵嬭!鐨勯ⅷ綆忎篃鏈?.. 紿佺劧鏂蜂簡(jiǎn)綬氣斺斾漢鐢熺附鏈夎ū澶氱殑宸у悎錛? 鍏╂騫寵綞篃鍙兘鏈?.. 鏈変氦婊欑殑涓澶?/description>zh-cnSun, 18 May 2008 19:47:42 GMTSun, 18 May 2008 19:47:42 GMT60Spring 綬ㄧ▼寮忎簨鍕欑鐞?zzhttp://m.tkk7.com/midstr/archive/2008/05/16/200797.html鍚戝乏璧板悜鍙寵蛋鍚戝乏璧板悜鍙寵蛋Fri, 16 May 2008 02:22:00 GMThttp://m.tkk7.com/midstr/archive/2008/05/16/200797.htmlhttp://m.tkk7.com/midstr/comments/200797.htmlhttp://m.tkk7.com/midstr/archive/2008/05/16/200797.html#Feedback0http://m.tkk7.com/midstr/comments/commentRss/200797.htmlhttp://m.tkk7.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鐨勪竴鍊嬪鐝撅級(jí)浣滅偤鎴戝戠殑浜嬪嫏綆$悊鍝★紝鎴戝戝湪Bean瀹氱京妾斾腑閰嶇疆錛屼甫灝嘍ataSource娉ㄥ叆緄﹀畠錛屼緥濡傦細(xì)

銆浠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>

銆銆鎴戝戝畾緹╀簡(jiǎn)涓鍊嬬啊鍠殑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()鏂規(guī)硶涓紝鎴戝戝皣瀵︾従User鐨勫瓨鍎詫紝涓︿嬌鐢ㄤ簨鍕欑鐞嗭紝棣栧厛鐪嬬湅鐩存帴浣跨敤trransactionManager濡備綍瀵︾従浜嬪嫏錛屾垜鍊戦渶瑕佷簨鍕欏畾緹╋紝浣滅偤紺虹瘎錛岄欓倞鍏堜嬌鐢⊿pring闋愯ō鐨勫嵆鍙細(xì)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錛堢偤浜?jiǎn)绨″寲锛屾垜鍊戠洿鎺ュ皣璩囨枡瀵湪SQL涓簡(jiǎn)錛岃屼笉鏄緸User鐗╀歡涓彇寰楋級(jí)錛屾敞鎰忓埌鎴戝戞晠鎰忓湪鏈寰屼竴琛孲QL涓璖pring010灝戝浜?jiǎn)涓鍊?' 錛岄欎嬌寰桽QL鍙ュ瓙涓嶅悎瑾炴硶錛屽洜鑰岄犳垚DataAccessException錛堝皝瑁濅簡(jiǎn)SQLException錛夛紝閫欏嬩緥澶栬catch鍗濉婃崟鎹夛紝鍥犺屽煼琛宺ollback()鍙栨秷涔嬪緦鐨凷QL錛屽鏋滄矑鏈夌櫦鐢熼尟瑾わ紝鍓囨渶寰屾垜鍊戜嬌鐢╟ommit()渚嗘彁浜ゆ搷浣溿?

銆銆鍙︿竴鍊嬬啊渚跨殑鏂規(guī)硶鏄嬌鐢═ransactionTemplate錛屽畠?yōu)畞瑁濅簡(jiǎn)涓婇潰鐨勪簨鍕檵箒绋嬪Q岄忛亷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鎿嶄綔錛屽鏋滃煼琛屼腑鐧肩敓渚嬪錛屽墖涔嬪墠鎵鏈夌殑鎿嶄綔鍙栨秷錛屽惁鍓囨渶寰岃嚜鍕曟彁浜ゆ搷浣溿傚鏋滄搷浣滃畬鎴愭?zhèn)ㄦ儗櫐仒q斿洖緄愭灉鐗╀歡錛屽墖鍙互浣跨敤TransactionCallback錛屼甫瀵︾従鍏禿oInTransaction()錛屼緥濡傦細(xì)

銆浠g⒓:

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

return resultObject;
});


]]>
主站蜘蛛池模板: 啦啦啦高清视频在线观看免费| 国产精品免费看久久久香蕉| 最近免费视频中文字幕大全| 亚洲AV无码一区二区三区系列 | 亚洲线精品一区二区三区影音先锋| 色妞www精品视频免费看| 免费欧洲美女牲交视频| 春暖花开亚洲性无区一区二区| 国内一级一级毛片a免费| 爱爱帝国亚洲一区二区三区| 无码欧精品亚洲日韩一区夜夜嗨 | 蜜臀91精品国产免费观看| 亚洲成a∨人片在无码2023| 在线日韩av永久免费观看| 色偷偷尼玛图亚洲综合| yy6080亚洲一级理论| 91视频免费观看高清观看完整| 亚洲精品无码专区久久久| 全部免费毛片在线播放| 亚洲伊人久久大香线蕉在观| 日韩精品视频免费在线观看| 一级女性全黄生活片免费看| 亚洲精品成人av在线| 在线观看的免费网站| 羞羞漫画在线成人漫画阅读免费| 亚洲精品综合久久| 免费视频成人片在线观看| jiz zz在亚洲| 国产午夜亚洲不卡| 成年黄网站色大免费全看| 久久久久久亚洲av无码蜜芽| 精品亚洲视频在线观看| 18禁成人网站免费观看| 亚洲成a人片在线不卡一二三区 | 日韩一品在线播放视频一品免费| 人成电影网在线观看免费| 久久精品国产亚洲av麻豆色欲 | 18禁黄网站禁片免费观看不卡| 亚洲精品欧美综合四区| 亚洲日产无码中文字幕| AV免费网址在线观看|