spring dao層中對(duì)jdbc進(jìn)行了封裝,使用模板模式的設(shè)計(jì)模式,通過(guò)ioc被動(dòng)注入的方式將jdbctemplate
這個(gè)模板類注入到數(shù)據(jù)對(duì)象中,進(jìn)行數(shù)據(jù)庫(kù)操作。
我們要在一個(gè)類中進(jìn)行crud
操作(crud主要被用在描述軟件系統(tǒng)中數(shù)據(jù)庫(kù)或者持久層的基本操作功能。),首先要將jdbctemplate這個(gè)模板類注入到數(shù)據(jù)對(duì)象類中,然后將datasource
這個(gè)類注入到j(luò)dbctemplate,獲取數(shù)據(jù)源。 這樣數(shù)據(jù)對(duì)象類就可以通過(guò)jdbctemplate類中的方法進(jìn)行數(shù)據(jù)庫(kù)操作了。
注意:這里需要導(dǎo)如spring jdbc的兩個(gè)包和數(shù)據(jù)庫(kù)驅(qū)動(dòng)包
在spring中使用jdbc操作數(shù)據(jù)庫(kù)時(shí),我們需要通過(guò)datasource獲取一個(gè)數(shù)據(jù)庫(kù)連接,然后開始執(zhí)行sql,sql執(zhí)行完成后,我們需要處理sql的結(jié)果,最后關(guān)閉連接,處理異常等。
無(wú)論我們是查詢,還是插入或者刪除數(shù)據(jù),整體過(guò)程比較類似,唯一變化的部分是執(zhí)行的sql不同,處理sql的結(jié)果的代碼不同,其余部分基本相同。所以,如果使用jdbc直接操作數(shù)據(jù)庫(kù),就會(huì)使代碼中存在很多相似且重復(fù)的代碼。
為了解決這個(gè)問(wèn)題,spring為我們提供的解決方案是,使用jdbc模板。spring的jdbc模板能夠承擔(dān)資源管理和異常處理的工作,從而簡(jiǎn)化我們的jdbc代碼,讓我們可以只編寫從數(shù)據(jù)庫(kù)中讀寫數(shù)據(jù)的代碼。
對(duì)于jdbc來(lái)說(shuō),spring提供了3個(gè)模板類。
- 1,jdbctemplate:spring里最基本的jdbc模板。
- 2,namedparameterjdbctemplate:能夠在執(zhí)行查詢時(shí),把值綁定到sql里的命名參數(shù)。
- 3,simplejdbctemplate:利用java5的特性,比如自動(dòng)裝箱,generic和可變參數(shù)列表來(lái)簡(jiǎn)化jdbc模板的使用。
具體的使用例子,會(huì)像這個(gè)樣子:
獲取到j(luò)dbc模板對(duì)象后,直接執(zhí)行sql即可,jdbctemplate.update(sql)
。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)服務(wù)器之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
原文鏈接:https://blog.csdn.net/li_canhui/article/details/85330597