锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲宅男精品一区在线观看,yy6080亚洲一级理论,亚洲系列中文字幕http://www.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://www.tkk7.com/midstr/archive/2008/05/16/200797.html鍚戝乏璧板悜鍙寵蛋鍚戝乏璧板悜鍙寵蛋Fri, 16 May 2008 02:22:00 GMThttp://www.tkk7.com/midstr/archive/2008/05/16/200797.htmlhttp://www.tkk7.com/midstr/comments/200797.htmlhttp://www.tkk7.com/midstr/archive/2008/05/16/200797.html#Feedback0http://www.tkk7.com/midstr/comments/commentRss/200797.htmlhttp://www.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人无码综合在线观看| 成人免费网站久久久| 真实乱视频国产免费观看| 亚洲AV综合色区无码二区爱AV| 青青在线久青草免费观看| 亚洲春色另类小说| 国产又黄又爽又猛免费app| 亚洲免费观看在线视频| 免费人成在线视频| 亚洲av无码专区在线电影天堂 | 18禁亚洲深夜福利人口| 曰皮全部过程视频免费国产30分钟| 亚洲狠狠婷婷综合久久蜜芽| 成人免费无码精品国产电影| 精品成人一区二区三区免费视频 | 午夜成年女人毛片免费观看| 亚洲爆乳精品无码一区二区| 日本中文一区二区三区亚洲| 久久免费99精品国产自在现线 | 日本免费网站观看| 黄色一级视频免费观看| 亚洲欧洲成人精品香蕉网| 日日麻批免费40分钟无码| 中文字幕亚洲男人的天堂网络 | 久9这里精品免费视频| 亚洲男女性高爱潮网站| 成人免费毛片观看| 一级做a毛片免费视频| 亚洲妇熟XXXX妇色黄 | 久久国产免费观看精品| 亚洲成年人电影在线观看| 免费的一级片网站| 97在线免费观看视频| 亚洲欧洲日产韩国在线| 国产v片免费播放| 99精品在线免费观看| 亚洲日本一线产区和二线产区对比| 国产精品亚洲高清一区二区| 最近中文字幕无免费|