亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

Apache Commons DbUtils使用手冊

2024-07-21 02:52:29
字體:
來源:轉載
供稿:網友

from http://blog.csdn.net/chszs/article/details/43051089

一、介紹

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的成員類型定義,有一條原則那就是:盡可能使用包裝類型,而不要使用基本類型。

作者:chszs,轉載需注明。博客主頁:http://blog.csdn.net/chszs

三、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中。ColumnListHandler:將結果集中某一列的數據存放到List中。KeyedHandler:將結果集中的每一行數據都封裝到一個Map里,然后再根據指定的key把每個Map再存放到一個Map里。MapHandler:將結果集中的第一行數據封裝到一個Map里,key是列名,value就是對應的值。MapListHandler:將結果集中的每一行數據都封裝到一個Map里,然后再存放到List。ScalarHandler:將結果集中某一條記錄的其中某一列的數據存成Object。

3、org.apache.commons.dbutils.wrappers包

SqlNullCheckedResultSet:在每個getXXX方法上檢查SQL NULL值的ResultSet包裝類。

StringTrimmedResultSet:刪除結果集中字符串前后空格的ResultSet包裝類。

作者:chszs,轉載需注明。博客主頁:http://blog.csdn.net/chszs

四、重要類詳述

1、DbUtils類

DbUtils提供如關閉連接、裝載JDBC驅動程序等常規工作的工具類,里面的所有方法都是靜態的。

主要方法如下:1)public static void close(...) throws SQLExceptionDbUtils類提供了三個重載的close方法。這些方法檢查所提供的參數是不是NULL,如果為空,就關閉Connection、Statement和ResultSet。2)public static void closeQuietly(...)bUtils類提供了四個重載的closeQuietly方法。這一類方法不僅能在Connection、Statement和ResultSet為NULL情況下避免關閉,還能隱藏一些在程序中拋出的SQLEeception。3)public static void commitAndCloseQuietly(Connection conn)在連接內提交SQL,然后關閉連接,并且在關閉連接時不拋出SQL異常。4)public static boolean loadDriver(String driverClassName)此方法載入并注冊JDBC驅動,如果成功就返回true,失敗返回false。使用該方法,無需捕捉ClassNotFoundException異常。

2、QueryRunner類

QueryRunner類簡化了SQL查詢,它與ResultSetHandler組合在一起使用可完成大多數數據庫操作,能夠大量減少代碼量。

QueryRunner類提供了兩個構造方法1)默認的構造方法2)需要一個javax.sql.DataSource來作參數的構造方法。

3、QueryRunner類的主要方法

1)public Object query(Connection conn, String sql, Object[] params, ResultSetHandler rsh) throws SQLException

執行一個查詢操作,在此查詢中,對象數組中的每個元素值被用來作為查詢語句的置換參數。此方法會自行處理PreparedStatement和ResultSet的創建和關閉。2)public Object query(String sql, Object[] params, ResultSetHandler rsh) throws SQLException幾乎與第一種方法一樣;唯一的不同在于它不將數據庫連接提供給方法,并且它是從提供給構造方法的數據源(DataSource) 或使用的setDataSource方法中重新獲得Connection。3)public Object query(Connection conn, String sql, ResultSetHandler rsh) throws SQLException執行一個不需要置換參數的查詢操作。4)public int update(Connection conn, String sql, Object[] params) throws SQLException用來執行一個更新(插入、更新或刪除)操作。5)public int update(Connection conn, String sql) throws SQLException用于執行一個不需要置換參數的更新操作。6)insert插入方法7)batch批處理方法
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品国产91久久| 日韩中文字幕在线免费观看| 国产精品99蜜臀久久不卡二区| 欧美风情在线观看| 精品高清美女精品国产区| 国产精品99久久99久久久二8| 午夜伦理精品一区| 欧洲成人午夜免费大片| 国产一区二区三区日韩欧美| 亚洲va码欧洲m码| 2018国产精品视频| 亚洲精品不卡在线| 国产精品嫩草视频| 北条麻妃99精品青青久久| 日韩成人在线免费观看| 亚洲精品第一国产综合精品| 亚洲美女在线看| 最好看的2019的中文字幕视频| 国产999精品久久久| 色婷婷亚洲mv天堂mv在影片| 8050国产精品久久久久久| 日韩av有码在线| 亚洲美女精品久久| 久久99精品久久久久久青青91| 国产欧美欧洲在线观看| 欧美日韩另类字幕中文| 最近2019年中文视频免费在线观看| 日韩第一页在线| 成人精品一区二区三区电影黑人| 日韩在线中文字幕| 中文欧美在线视频| 中文字幕欧美视频在线| 欧美性极品少妇精品网站| 久久好看免费视频| 国产精品一区二区三区免费视频| 国产亚洲日本欧美韩国| 欧美日韩亚洲高清| 亚洲电影中文字幕| 日本19禁啪啪免费观看www| 日韩国产精品亚洲а∨天堂免| 亚洲老头同性xxxxx| 亚洲成年网站在线观看| 久久久久久久久久久免费精品| 青青草一区二区| 免费91麻豆精品国产自产在线观看| 亚洲国产成人一区| 免费99精品国产自在在线| 69视频在线免费观看| 国产精品久久久久91| 不卡伊人av在线播放| 国产精品久久久久9999| 欧美激情图片区| 91精品免费视频| 国产精品美乳在线观看| 九九热99久久久国产盗摄| 国产精品日韩精品| 久久视频在线直播| 日本成人在线视频网址| 国产日韩精品入口| 欧美日本高清一区| 国产精品久久在线观看| 国产精品三级在线| 国产精品久久不能| 欧美日韩福利视频| 538国产精品一区二区在线| 国产在线视频91| 日韩精品在线视频| 日韩精品一区二区三区第95| 日韩中文第一页| 色哟哟亚洲精品一区二区| 久久久免费观看| 亚洲最大的免费| 国产999精品久久久| 色综合视频网站| 欧美大胆在线视频| 激情成人中文字幕| 精品国产一区二区在线| 美日韩精品免费观看视频| 日韩成人激情视频| 97激碰免费视频| 亚洲精品98久久久久久中文字幕| 97精品国产91久久久久久| 精品少妇一区二区30p| 成人午夜在线观看| 国产欧美精品xxxx另类| 亚洲黄色www| 亚洲风情亚aⅴ在线发布| 国产精品jizz在线观看麻豆| 精品视频在线播放免| 日韩av一区在线| 日韩精品高清在线| 超碰91人人草人人干| 久久99国产精品自在自在app| 影音先锋欧美在线资源| 亚洲欧美资源在线| 91精品国产高清久久久久久久久| 国产亚洲精品成人av久久ww| 粉嫩老牛aⅴ一区二区三区| 久久视频在线看| 国产中文字幕亚洲| 夜夜嗨av色综合久久久综合网| 亚洲欧美日韩中文在线制服| 国产国语刺激对白av不卡| 深夜精品寂寞黄网站在线观看| 成人免费高清完整版在线观看| 日韩av毛片网| 中文字幕日韩精品在线观看| 这里只有视频精品| 久久久影视精品| 2019最新中文字幕| 欧美美女操人视频| 一区二区欧美激情| 国产精品一区=区| 亚洲日本欧美中文幕| 国产一区二区三区高清在线观看| 91av在线免费观看视频| 91高潮精品免费porn| 日韩风俗一区 二区| 中文字幕v亚洲ⅴv天堂| 亚洲区一区二区| 美女视频黄免费的亚洲男人天堂| 91高清视频在线免费观看| 中文字幕在线精品| 国产精品91在线观看| 久热精品在线视频| 九九久久久久久久久激情| 亚洲欧美国产高清va在线播| 欧美精品电影免费在线观看| 欧美激情视频网| 性色av一区二区三区在线观看| 久久久久亚洲精品成人网小说| 国产在线精品一区免费香蕉| 97人人模人人爽人人喊中文字| 欧美小视频在线观看| 国产综合视频在线观看| 日韩亚洲成人av在线| 成人免费直播live| 91久久精品久久国产性色也91| 亚洲人成电影在线观看天堂色| 精品美女永久免费视频| yw.139尤物在线精品视频| 久久夜色精品国产亚洲aⅴ| 国产精品香蕉在线观看| 久久久女女女女999久久| 欧美性猛交xxxx久久久| 欧美日韩亚洲高清| 国产欧美中文字幕| 91久久久久久久一区二区| 国产精品中文字幕在线观看| 日韩av电影在线免费播放| 欧美日韩亚洲一区二区| 日韩精品久久久久| 97超碰蝌蚪网人人做人人爽| 亚洲精品xxx| 欧美极品第一页| 57pao成人国产永久免费| 亚洲精品视频播放| 亚洲色图第一页| 曰本色欧美视频在线| 欧美大胆在线视频| 国产精品视频久久久| 国产一区二区三区丝袜| 中文日韩在线视频| 色悠久久久久综合先锋影音下载|