本篇文章給大家分享的是有關(guān)weed3-5中怎么實(shí)現(xiàn)事務(wù)和事務(wù)隊(duì)列,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
成都創(chuàng)新互聯(lián)公司專注于長(zhǎng)垣網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供長(zhǎng)垣營(yíng)銷型網(wǎng)站建設(shè),長(zhǎng)垣網(wǎng)站制作、長(zhǎng)垣網(wǎng)頁(yè)設(shè)計(jì)、長(zhǎng)垣網(wǎng)站官網(wǎng)定制、微信平臺(tái)小程序開(kāi)發(fā)服務(wù),打造長(zhǎng)垣網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供長(zhǎng)垣網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
1.事務(wù)(主要用于單個(gè)庫(kù))
//demo1:: //事務(wù)組 // 在一個(gè)事務(wù)里,做4個(gè)插入//如果出錯(cuò)了,自動(dòng)回滾 DbUserApi dbUserApi = XmlSqlProxy.getSingleton(DbUserApi.class); db.tran((t) -> { // // 此表達(dá)式內(nèi)的操作,會(huì)自動(dòng)加入事務(wù) // //sql接口 db.sql("insert into test(txt) values(?)", "cc").insert(); db.sql("update test set txt='1' where id=1").execute(); //call接口 db.call("user_del").set("_user_id",10).execute(); //table()接口 db.table("a_config").set("cfg_id",1).insert(); //xml mapper dbUserApi.user_add(12); //大家使用統(tǒng)一的事務(wù)模式 });
2.事務(wù)隊(duì)列(主要用于多個(gè)庫(kù)的情況)
//demo2:: //事務(wù)隊(duì)列 // //假如,要跨兩個(gè)數(shù)據(jù)庫(kù)操作(一個(gè)事務(wù)對(duì)象沒(méi)法用了) // DbContext db = DbConfig.pc_user; DbContext db2 = DbConfig.pc_base; //創(chuàng)建個(gè)事務(wù)隊(duì)列(和傳統(tǒng)概念的隊(duì)列不一樣) DbTranQueue queue = new DbTranQueue(); //數(shù)據(jù)庫(kù)1的事務(wù) db.tran().join(queue).execute((t) => { // // 在這個(gè)表達(dá)示內(nèi),會(huì)自動(dòng)加入事物 // db.sql("insert into test(txt) values(?)", "cc").execute(); db.sql("insert into test(txt) values(?)", "dd").execute(); db.sql("insert into test(txt) values(?)", "ee").execute(); }); //數(shù)據(jù)庫(kù)2的事務(wù) db2.tran().join(queue).execute((t) => { // // 在這個(gè)表達(dá)示內(nèi),會(huì)自動(dòng)加入事物 // db2.sql("insert into test(txt) values(?)", "gg").execute(); }); //隊(duì)列結(jié)組完成(即開(kāi)始跑事務(wù)) queue.complete();
3.事務(wù)隊(duì)列的加強(qiáng)版,跨函數(shù)或模塊跑事務(wù)
public void test_main(){ DbTranQueue queue = new DbTranQueue(); test1(queue); test2(queue); } public void test1(DbTranQueue queue){ DbTran tran = DbConfig.db1.tran();//生成個(gè)事務(wù)對(duì)象 tran.join(queue).execute((t) -> { // // 在這個(gè)表達(dá)示內(nèi),會(huì)自動(dòng)加入事物 // t.db().sql("insert into $.test(txt) values(?)", "cc").insert(); t.db().sql("insert into $.test(txt) values(?)", "dd").execute(); t.db().sql("insert into $.test(txt) values(?)", "ee").execute(); t.result = t.db().sql("select name from $.user_info where user_id=3").getValue(""); }); } public void test2(DbTranQueue queue){ //...test2就不寫(xiě)了 }
以上就是weed3-5中怎么實(shí)現(xiàn)事務(wù)和事務(wù)隊(duì)列,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站欄目:weed3-5中怎么實(shí)現(xiàn)事務(wù)和事務(wù)隊(duì)列
URL標(biāo)題:http://vcdvsql.cn/article12/iijggc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、搜索引擎優(yōu)化、網(wǎng)站導(dǎo)航、網(wǎng)頁(yè)設(shè)計(jì)公司、微信小程序、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)