Apache Commons DbUtils工具包使用介紹

這篇文章主要介紹了Apache Commons DbUtils工具包使用介紹,本文介紹了DBUtils是什么東西、熟悉DBUtils的一些問題匈勋、API介紹等內(nèi)容,需要的朋友可以參考下

一礼旅、介紹

DBUtils是個小巧的JDBC輕量級封裝的工具包,其最核心的特性是在JDBC的基礎(chǔ)上做了一層封裝洽洁,主要是對結(jié)果集的封裝痘系,可以直接將查詢出來的結(jié)果集封裝成JavaBean,旨在簡化JDBC代碼混亂與重復(fù)饿自。

JDBC代碼開發(fā)汰翠,存在很多難點:

1)操作過程復(fù)雜,代碼操作一個模式昭雌,大量的重復(fù)复唤。

2)結(jié)果集難以處理。

3)到處都強制檢查SQLException烛卧,影響代碼的美觀和可讀性佛纫。

二、熟悉DBUtils

在使用DBUtils之前总放,應(yīng)該注意一些問題:

1)DBUtils是JDBC的簡單封裝呈宇,可以和JDBC混合使用。

2)DBUtils對結(jié)果集自動封裝為JavaBean是有著苛刻要求的:

必須滿足JavaBean的規(guī)范局雄;

其次Bean的getter與setter方法的名字與結(jié)果集的列名必須一一對應(yīng)攒盈;

不要求JavaBean的私有成員與表結(jié)果集列名一一對應(yīng)。

3)DBUtils可以將結(jié)果集封裝為各種類型

主要有:Bean/List哎榴,Map/List/Map,數(shù)組/List<數(shù)組>僵蛛,列/List<列>尚蝌,這些類型。

對于Map的類型使用KeyedHandler作為結(jié)果集處理器充尉,內(nèi)層的Map是“列名-值"對飘言,外層的Map是“主鍵-內(nèi)層Map的引用”,但此處的主鍵不一定就是數(shù)據(jù)庫的主鍵驼侠,可以隨意指定姿鸿。

4)DBUtils執(zhí)行插入操作的時候谆吴,無法返回自增主鍵,這是一個很嚴重的問題苛预,當然不能怪DBUtils句狼,可以通過變通的方法來實現(xiàn),比如在MySQL中热某,執(zhí)行完了一個插入SQL后腻菇,接著執(zhí)行SELECT LAST_INSERT_ID()語句,就可以獲取到自增主鍵昔馋。

5)DBUtils的性能和JDBC性能是一樣筹吐,測試過程中沒發(fā)現(xiàn)性能損失,擁有了很高性能的同時秘遏,而不失JDBC的靈活性坤邪。

6)對于JavaBean的成員類型定義筒溃,有一條原則那就是:盡可能使用包裝類型,而不要使用基本類型。

三夜牡、API介紹

1、org.apache.commons.dbutils包

DbUtils:一個為簡化JDBC操作的小類庫

AbstractQueryRunner:是抽象類结蟋,QueryRunner和AsyncQueryRunner類的基類招刹。

AsyncQueryRunner:可插拔的方式執(zhí)行SQL查詢,處理結(jié)果集审丘。是線程安全的類吏够。

BaseResultSetHandler:把結(jié)果集轉(zhuǎn)換成其它對象的擴展。

BeanProcessor:BeanProcessor匹配列名到Bean屬性名滩报,并轉(zhuǎn)換結(jié)果集列到Bean對象的屬性中锅知。

Dbutils:一個JDBC輔助工具集合。

GenerousBeanProcessor:提供了從數(shù)據(jù)庫列名到JavaBean屬性之間的智能匹配脓钾。

ProxyFactory:產(chǎn)生JDBC接口的代理實現(xiàn)售睹。

QueryLoader:屬性文件加載器,主要用于加載屬性文件中的SQL到內(nèi)存中可训。

QueryRunner:使用可插拔的策略執(zhí)行SQL查詢并處理結(jié)果集昌妹。

ResultSetHandler:把ResultSet轉(zhuǎn)換為別的對象的工具。

ResultSetIterator:包裝結(jié)果集為一個迭代器握截。

RowProcessor:將ResultSet行轉(zhuǎn)換為別的對象的工具飞崖。

2、org.apache.commons.dbutils.handlers包

AbstractKeyedHandler:KeyedHandler的抽象類谨胞。

AbstractListHandler:簡化ResultSetHandler類開發(fā)的抽象類固歪,把結(jié)果集轉(zhuǎn)換成List。

ArrayHandler:把結(jié)果集中的第一行數(shù)據(jù)轉(zhuǎn)成對象數(shù)組胯努。

ArrayListHandler:把結(jié)果集中的每一行數(shù)據(jù)都轉(zhuǎn)成一個對象數(shù)組牢裳,再存放到List中逢防。

BeanHandler:將結(jié)果集中的第一行數(shù)據(jù)封裝到一個對應(yīng)的JavaBean實例中。

BeanListHandler:將結(jié)果集中的每一行數(shù)據(jù)都封裝到一個對應(yīng)的JavaBean實例中蒲讯,存放到List里忘朝。

BeanMapHandler:實現(xiàn)了Bean返回Map集合。結(jié)果集所有的行都會轉(zhuǎn)換成Bean伶椿,并根據(jù)指定的Key存儲到Map中辜伟。

文章來源:http://www.iis7.com/c/90/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市脊另,隨后出現(xiàn)的幾起案子导狡,更是在濱河造成了極大的恐慌,老刑警劉巖偎痛,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旱捧,死亡現(xiàn)場離奇詭異,居然都是意外死亡踩麦,警方通過查閱死者的電腦和手機枚赡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谓谦,“玉大人贫橙,你說我怎么就攤上這事》粗啵” “怎么了卢肃?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長才顿。 經(jīng)常有香客問我莫湘,道長,這世上最難降的妖魔是什么郑气? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任幅垮,我火速辦了婚禮,結(jié)果婚禮上尾组,老公的妹妹穿的比我還像新娘忙芒。我一直安慰自己,他們只是感情好讳侨,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布匕争。 她就那樣靜靜地躺著,像睡著了一般爷耀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拍皮,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天歹叮,我揣著相機與錄音跑杭,去河邊找鬼。 笑死咆耿,一個胖子當著我的面吹牛德谅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播萨螺,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼窄做,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了慰技?” 一聲冷哼從身側(cè)響起椭盏,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吻商,沒想到半個月后掏颊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡艾帐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年乌叶,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柒爸。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡准浴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捎稚,到底是詐尸還是另有隱情乐横,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布阳藻,位于F島的核電站晰奖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏腥泥。R本人自食惡果不足惜匾南,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蛔外。 院中可真熱鬧蛆楞,春花似錦、人聲如沸夹厌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽矛纹。三九已至臂聋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背孩等。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工艾君, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肄方。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓冰垄,卻偏偏與公主長得像,于是被迫代替她去往敵國和親权她。 傳聞我的和親對象是個殘疾皇子虹茶,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容