這個(gè)類(lèi)能夠?qū)⒁粋€(gè)對(duì)象和一個(gè)線程綁定起來(lái),我的理解就是他維持了一個(gè)Map<Thread, T>集合。

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

         之所以寫(xiě)這個(gè)類(lèi)是因?yàn)?DBUtils 工具類(lèi),在 JavaEE 經(jīng)典三層結(jié)構(gòu)中對(duì)于事務(wù)的操作,不方便放在 DAO 層,因?yàn)榫哂星秩胄?,只適合放在 Service層開(kāi)啟事務(wù),但是由于要調(diào)用 DAO 中不同的方法來(lái)完成一個(gè)事務(wù),就涉及到 conn 對(duì)象的傳遞,因?yàn)橐WC是同一個(gè) conn 對(duì)象在操作事務(wù),要不然就會(huì)出亂子了,就會(huì)想到將 conn 對(duì)象當(dāng)成參數(shù)傳遞給 ADO 層的若干方法,但是有時(shí)候連 Service 都沒(méi)有 conn 對(duì)象的持有,更別說(shuō)當(dāng)成參數(shù)傳遞給  DAO 層了,但是想一想,執(zhí)行一個(gè)事務(wù)的線程肯定是同一個(gè)線程,這樣就可以用上ThreadLocal 類(lèi)了,在使用連接池時(shí)就將 conn 對(duì)象和當(dāng)前線程綁定,在之后的 ADO 中獲取 conn 對(duì)象時(shí),也是通過(guò)連接池獲取 conn 對(duì)象,此時(shí)也肯定是同一個(gè) conn 對(duì)象。

這個(gè)ThreadLocal類(lèi)中提供的方法不多,我下面使用的就是 get/set 方法

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

       下面是一個(gè)轉(zhuǎn)賬的事務(wù):(數(shù)據(jù)庫(kù)中 account 表有三個(gè)字段:id, name, money)

下面是JDBCUtils工具類(lèi)中核心代碼:

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn)
        
        	<div   id=

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式