前段時(shí)間使用了Apache Common DbUtils這個(gè)工具,在此留個(gè)印,以備不時(shí)查看。大家都知道現(xiàn)在市面上的數(shù)據(jù)庫(kù)訪問(wèn)層的框架很多,當(dāng)然很多都是包含了OR-Mapping工作步驟的 例如大家常用的Hibernate與Mybatis。當(dāng)然如果人們要一個(gè)純粹的封裝了JDBC的工具類,使用Apache Common DbUtils(下面簡(jiǎn)稱ACD)是個(gè)不錯(cuò)的選擇,這個(gè)工具在JDBC的基礎(chǔ)上稍加封裝是JDBC的操作更加便捷,在學(xué)習(xí)使用這個(gè)框架的途中你也不需要學(xué) 習(xí)太多的API類,因?yàn)橐还惨膊?個(gè)部分(3個(gè)包)。

  1. org.apache.commons.dbutils (該包中的類主要幫助我們更便捷的操作JDBC)

  2. org.apache.commons.dbutils.handlers(該包中的類都是實(shí)現(xiàn)org.apache.commons.dbutils.ResultSetHandler接口的實(shí)現(xiàn)類)

  3. org.apache.commons.dbutils.wrappers(該包中的類主要是封裝了對(duì)Sql結(jié)果集的操作)

使用這個(gè)DbUtils的一些優(yōu)勢(shì):

  1. 防止了資源的泄露,寫一段JDBC的準(zhǔn)備代碼其實(shí)并不麻煩,但是那些操作確實(shí)是十分耗時(shí)和繁瑣的,也會(huì)導(dǎo)致有時(shí)候數(shù)據(jù)庫(kù)連接忘記關(guān)閉了導(dǎo)致異常難以追蹤。

  2. 干凈整潔的持久化代碼,把數(shù)據(jù)持久化到數(shù)據(jù)庫(kù)的代碼被打打削減,剩下的代碼能夠清晰簡(jiǎn)潔的表達(dá)你的操作目的。

  3. 自動(dòng)把ResultSets中的工具映射到JavaBean中,你不需要手動(dòng)的使用Setter方法將列值一個(gè)個(gè)賦予相應(yīng)的時(shí)日,Resultset中的每一個(gè)行都大表一個(gè)完成的Bean實(shí)體。    

要學(xué)習(xí)如何使用這個(gè)框架,最簡(jiǎn)單的方式就是用它寫個(gè)Demo-CRUD操作,讓我們先做個(gè)準(zhǔn)備動(dòng)作在Mysql中建立一個(gè)測(cè)試專用表Visitor

/*創(chuàng)建Visitor*/
CREATE TABLE Visitor
(
    Id 
INT(11NOT NULL AUTO_INCREMENT,
    Name 
VARCHAR(1000NOT NULL,
    Email 
VARCHAR(1000NOT NULL,
    Status 
INT NOT NULL DEFAULT 1,
    CreateTime 
DateTime,
    
PRIMARY KEY(Id)
)

建完表結(jié)構(gòu),我們就可以學(xué)習(xí)怎么利用框架中的Utils類幫助我們完成CRUD-DEMO,其實(shí)對(duì)于這個(gè)框架主要操作的是ResultSetHandler接口的實(shí)現(xiàn)類與QueryRunner類

創(chuàng)建對(duì)應(yīng)的JavaBean實(shí)體類如下:

Visitor-JavaBean

首先我們先新建一個(gè)獲取Connection的方法:

獲取Connection

新建方法(對(duì)于里面的自增字段,我們可以采用變通的方法來(lái)插入,使用select last_insert_id()方法)

Create操作

大家可以看到操作的步驟其實(shí)很簡(jiǎn)單,也是寫SQL可以了,對(duì)于自增字段我們通過(guò)select last_insert_id()的方法利用ScalarHandler<BigInteger>實(shí)體類來(lái)返回達(dá)到變通效果。

刪除方法

刪除操作

查詢方法

查詢操作

更新操作

更新操作

BeanListHandler方法

BeanListHandler

MapHandler操作

MapHandler操作

MapListHandler方法

MapListHandler操作

經(jīng)過(guò)上面的幾個(gè)示例,相信大家應(yīng)該知道怎么用這個(gè)框架了吧~ 框架的官網(wǎng)地址



如果你覺(jué)得這篇文章對(duì)你有用,歡迎推薦[推薦]

如果你覺(jué)得文章內(nèi)有錯(cuò)誤歡迎指出^0^~

如果您想轉(zhuǎn)載本博客,請(qǐng)注明出處

如果您對(duì)本文有意見(jiàn)或者建議,歡迎留言

本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文鏈接,否則作者保留追究法律責(zé)任的權(quán)利。