1. gzyueqian
      13352868059

      Dbutil框架和Dbutil的簡(jiǎn)單介紹

      更新時(shí)間: 2018-08-28 10:40:44來源: 嵌入式培訓(xùn)瀏覽量:7397

      Dbutil框架和它的簡(jiǎn)單介紹

      l commons-dbutils 是 Apache 組織提供的一個(gè)開源 JDBC工具類庫(kù),它是對(duì)JDBC的簡(jiǎn)單封裝,學(xué)習(xí)成本極低,并且使用dbutils能極大簡(jiǎn)化jdbc編碼的工作量,同時(shí)也不會(huì)影響程序的性能。因此dbutils成為很多不喜歡hibernate的公司的。

      l API介紹:

      ? org.apache.commons.dbutils.QueryRunner --- 核心
      ? org.apache.commons.dbutils.ResultSetHandler

      ? 工具類

      ? org.apache.commons.dbutils.DbUtils、。   

      DBUtils學(xué)習(xí)

      1、QueryRunner 框架核心類 ,所有數(shù)據(jù)庫(kù)操作都是必須通過 QueryRunner 進(jìn)行的

      2、ResultSetHandler 結(jié)果集封裝接口,完成將ResultSet 結(jié)果集 封裝為一個(gè)Java對(duì)象

      3、DbUtils 工具類 提供驅(qū)動(dòng)管理、事務(wù)管理、釋放資源等一系列公共方法

      DbUtils
      l DbUtils :提供如關(guān)閉連接、裝載JDBC驅(qū)動(dòng)程序等常規(guī)工作的工具類,里面的所有方法都是靜態(tài)的。主要方法如下:

      ? public static void close(…) throws java.sql.SQLException: DbUtils類提供了三個(gè)重載的關(guān)閉方法。這些方法檢查所提供的參數(shù)是不是NULL,如果不是的話,它們就關(guān)閉Connection、Statement和ResultSet。

      ? public static void closeQuietly(…): 這一類方法不僅能在Connection、Statement和ResultSet為NULL情況下避免關(guān)閉,還能隱藏一些在程序中拋出的SQLException。

      ? public static void commitAndCloseQuietly(Connection conn): 用來提交連接,然后關(guān)閉連接,并且在關(guān)閉連接時(shí)不拋出SQL異常。

      ? public static boolean loadDriver(java.lang.String driverClassName):這一方裝載并注冊(cè)JDBC驅(qū)動(dòng)程序,如果成功就返回true。使用該方法,你不需要捕捉這個(gè)異常ClassNotFoundException。

      QueryRunner
      l 該類簡(jiǎn)單化了SQL查詢,它與ResultSetHandler組合在一起使用可以完成大部分的數(shù)據(jù)庫(kù)操作,能夠大大減少編碼量。

      l QueryRunner類提供了兩個(gè)構(gòu)造方法:

      ? 默認(rèn)的構(gòu)造方法(手動(dòng)管理事務(wù))

      ? 需要一個(gè) javax.sql.DataSource 來作參數(shù)的構(gòu)造方法。(自動(dòng)管理事物)

      l 更新操作

      ? public int update(Connection conn, String sql, Object... params)

      ? public int update(String sql, Object... params)

      l 查詢操作

      ? public Object query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params)

      ? public Object query(String sql, ResultSetHandler<T> rsh, Object... params)

      ResultSetHandler
      l 該接口用于處理 java.sql.ResultSet,將數(shù)據(jù)按要求轉(zhuǎn)換為另一種形式。

      l ResultSetHandler 接口提供了一個(gè)單獨(dú)的方法:Object handle (java.sql.ResultSet .rs)。

      ResultSetHandler 在DBUtils 框架中提供九個(gè)默認(rèn) 實(shí)現(xiàn)類,直接使用九個(gè)默認(rèn)實(shí)現(xiàn)類,可以完成常規(guī)操作,而不需要自定義結(jié)果集封裝

      1) ArrayHandler 和 ArrayListHandler  將數(shù)據(jù)表的每行記錄保存Object[] 中

      2) BeanHandler 和 BeanListHandler 將數(shù)據(jù)表每行記錄 保存JavaBean對(duì)象中

      * 封裝javabean屬性時(shí),必須保證數(shù)據(jù)表列名與 javabean屬性名一致,否則無(wú)法封裝

      3) MapHandler和 MapListHandler 將結(jié)果每行記錄保存到一個(gè)Map集合,key是列名,value是值  

      4) ColumnListHandler 查詢結(jié)果集中指定一列數(shù)據(jù)

      5) KeyedHandler(name) 結(jié)果集每行數(shù)據(jù)封裝map,再將map存入另一個(gè)map 作為value,指定一列作為key

      6) ScalarHandler 進(jìn)行單值查詢 select count(*) from account;
      粵嵌科技創(chuàng)辦于2005年是一家IT高新技術(shù)企業(yè),專注IT職業(yè)教育13年,主要培訓(xùn)課程分別有嵌入式培訓(xùn)、Java培訓(xùn)、Unity游戲開發(fā)、Python人工智能、HTML5前端開發(fā)、全棧UI設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷、CCIE網(wǎng)絡(luò)等專業(yè)課程,咨詢電話:020-61038927

      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 中文字幕乱码手机在线中有 | 综合久久久久6亚洲综合 | 亚洲日韩欧美黑人专区 | 亚洲伊人久久久综合 | 尤物无毒不卡在线观看 | 视频一区二区三区自拍偷拍 |