锘??xml version="1.0" encoding="utf-8" standalone="yes"?>99久久99久久免费精品蜜臀,最近看过的日韩成人,丁香花高清电影在线观看完整版 http://www.aygfsteel.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.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鐨勪竴鍊嬪鐝撅級(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;
});


]]>
主站蜘蛛池模板: 常熟市| 进贤县| 德昌县| 钟山县| 连南| 威宁| 丹巴县| 屏边| 建昌县| 嘉祥县| 彩票| 康保县| 宁夏| 广东省| 阿瓦提县| 高陵县| 凤城市| 葫芦岛市| 临西县| 仁寿县| 鹿邑县| 伊金霍洛旗| 易门县| 阳西县| 固始县| 门头沟区| 时尚| 琼海市| 盘锦市| 阳西县| 惠安县| 固阳县| 云浮市| 保亭| 泰顺县| 兰考县| 大荔县| 东丽区| 和林格尔县| 高要市| 醴陵市|