国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Apache > 正文

Apache Commons DbUtils工具包使用介紹

2024-08-27 18:24:18
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Apache Commons DbUtils工具包使用介紹,本文介紹了DBUtils是什么東西、熟悉DBUtils的一些問題、API介紹等內容,需要的朋友可以參考下

一、介紹

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

JDBC代碼開發,存在很多難點:
1)操作過程復雜,代碼操作一個模式,大量的重復。
2)結果集難以處理。
3)到處都強制檢查SQLException,影響代碼的美觀和可讀性。

二、熟悉DBUtils

在使用DBUtils之前,應該注意一些問題:
1)DBUtils是JDBC的簡單封裝,可以和JDBC混合使用。
2)DBUtils對結果集自動封裝為JavaBean是有著苛刻要求的:
必須滿足JavaBean的規范;
其次Bean的getter與setter方法的名字與結果集的列名必須一一對應;
不要求JavaBean的私有成員與表結果集列名一一對應。
3)DBUtils可以將結果集封裝為各種類型
主要有:Bean/List<Bean>,Map/List<Map>/Map<Map>,數組/List<數組>,列/List<列>,這些類型。

對于Map<Map>的類型使用KeyedHandler作為結果集處理器,內層的Map是“列名-值"對,外層的Map是“主鍵-內層Map的引用”,但此處的主鍵不一定就是數據庫的主鍵,可以隨意指定。
4)DBUtils執行插入操作的時候,無法返回自增主鍵,這是一個很嚴重的問題,當然不能怪DBUtils,可以通過變通的方法來實現,比如在MySQL中,執行完了一個插入SQL后,接著執行SELECT LAST_INSERT_ID()語句,就可以獲取到自增主鍵。
5)DBUtils的性能和JDBC性能是一樣,測試過程中沒發現性能損失,擁有了很高性能的同時,而不失JDBC的靈活性。
6)對于JavaBean的成員類型定義,有一條原則那就是:盡可能使用包裝類型,而不要使用基本類型。

三、API介紹

1、org.apache.commons.dbutils包
DbUtils:一個為簡化JDBC操作的小類庫
AbstractQueryRunner:是抽象類,QueryRunner和AsyncQueryRunner類的基類。
AsyncQueryRunner:可插拔的方式執行SQL查詢,處理結果集。是線程安全的類。
BaseResultSetHandler:把結果集轉換成其它對象的擴展。
BeanProcessor:BeanProcessor匹配列名到Bean屬性名,并轉換結果集列到Bean對象的屬性中。
Dbutils:一個JDBC輔助工具集合。
GenerousBeanProcessor:提供了從數據庫列名到JavaBean屬性之間的智能匹配。
ProxyFactory:產生JDBC接口的代理實現。
QueryLoader:屬性文件加載器,主要用于加載屬性文件中的SQL到內存中。
QueryRunner:使用可插拔的策略執行SQL查詢并處理結果集。
ResultSetHandler:把ResultSet轉換為別的對象的工具。
ResultSetIterator:包裝結果集為一個迭代器。
RowProcessor:將ResultSet行轉換為別的對象的工具。

2、org.apache.commons.dbutils.handlers包
AbstractKeyedHandler:KeyedHandler的抽象類。
AbstractListHandler:簡化ResultSetHandler類開發的抽象類,把結果集轉換成List。
ArrayHandler:把結果集中的第一行數據轉成對象數組。
ArrayListHandler:把結果集中的每一行數據都轉成一個對象數組,再存放到List中。
BeanHandler:將結果集中的第一行數據封裝到一個對應的JavaBean實例中。
BeanListHandler:將結果集中的每一行數據都封裝到一個對應的JavaBean實例中,存放到List里。
BeanMapHandler:實現了Bean返回Map集合。結果集所有的行都會轉換成Bean,并根據指定的Key存儲到Map中。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青铜峡市| 丰原市| 游戏| 拉萨市| 康保县| 九龙坡区| 阿克陶县| 莆田市| 沂南县| 福清市| 佳木斯市| 上蔡县| 仙居县| 响水县| 民丰县| 醴陵市| 左贡县| 始兴县| 靖安县| 光泽县| 云和县| 青阳县| 合川市| 海阳市| 新田县| 兰西县| 永善县| 平舆县| 通化县| 兴宁市| 库伦旗| 博白县| 乐东| 巴里| 页游| 丹东市| 眉山市| 赤壁市| 灯塔市| 晋州市| 洮南市|