亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

DBUtils介紹

發布時間:2020-06-28 00:04:06 來源:網絡 閱讀:265 作者:nineteens 欄目:MySQL數據庫

  一、DBUtils介紹 apache

  什么是DBUtils,它的作用

  DBUtils是Java編程中的數據庫操作實用工具,小巧簡單實用。

  DBUtils封裝了對JDBC的操作,簡化了JDBC操作,可以少寫代碼。

  1.對于數據表的讀操作,他可以把結果轉換成List,Array,Set等Java集合,便于程序員操作

  2.對于數據表的寫操作,也變得很簡單(只需寫sql語句)

  3.可以使用數據源,使用JNDI,數據庫連接池等技術來優化性能–重用已經構建好的數據庫連接對象

  二、DBUtils的三個核心對象

  QueryRunner類

  ResultSetHandler接口

  DBUtils類

  QueryRunner類

  QueryRunner中提供對sql語句操作的API

  它主要有三個方法

  query() //用于執行select

  update() //用于執行insert update delete

  batch() //批處理

  ResultSetHandler接口

  用于定義select操作后,怎樣封裝結果集

  DBUtils類

  它就是一個工具類,定義了關閉資源與事務處理的方法

  三、Dbutils快速入門

  導入jar包

  創建QueryRunner對象

  使用query方法執行select語句

  使用ResultSetHandler封裝結果集

  使用DBUtils類釋放資源

  DBUtils快速入門實現步驟:

  導入jar包

  注意: c3p0與mysql驅動jar也要導入。

  創建QueryRunner對象

  使用query方法執行select語句

  使用ResultSetHandler封裝結果集

  使用DBUtils類釋放資源

  四、QueryRunner對象

  構造函數:無錫人流多少錢 http://www.xaytsgyy.com/

  new QueryRunner():它的事務可以手動控制

  也就是說此對象調用的方法(如:query、update、batrch)參數中要有Connection對象

  new QueryRunner(DataSource ds):它的事務是自動控制的 一個sql一個事務

  此對象調用的方法(如:query、update、batrch)參數中無需Connection對象

  進行基本的CRUD操作:練一下

  public class TestQueryRunner{

  @Test

  public void testInsert() throws SQLException{

  QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());

  qr.update("insert into student(NAME, birthday) values(?,?)", "bbb", new Date());

  }

  @Test

  public void testUpdate() throws SQLException{

  QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());

  qr.update("update student set name=?, birthday=? where id=?", "ccc", new Date(), 1);

  }

  @Test

  public void testDelete() throws SQLException{

  QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());

  qr.update("delete from student where id=?", 1);

  }

  @Test

  public void testBatch() throws SQLException{

  QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());

  Object[][] params = new Object[10][]; //高維表示要執行多少條sql語句

  for(int i = 0; i < params.length; i++){

  params[i] = new Object[]{"菜10"+i, "123", "c10@163.com", new Date()};

  }

  qr.batch("insert into user(username, password, email, birthday) values(?,?,?,?)", params);

  }

  }

  五、ResultSetHandler接口

  ResultSetHandler下的所有結果處理器

  ArrayHandler:適合取1條記錄。把該條記錄的每列值封裝到一個數組中Object[]

  ArrayListHandler:適合取多條記錄。把每條記錄的每列值封裝到一個數組中Object[],把數組封裝到一個List中

  ColumnListHandler:取某一列的數據。封裝到List中

  KeyedHandler:取多條記錄,每一條記錄封裝到一個Map中,再把這個Map封裝到另外一個Map中,key為指定的字段值

  MapHandler:適合取1條記錄。把當前記錄的列名和列值放到一個Map中

  MapListHandler:適合取多條記錄。把每條記錄封裝到一個Map中,再把Map封裝到List中

  ScalarHandler:適合取單行單列數據

  BeanHandler

  BeanListHandler


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平南县| 四平市| 长武县| 孝义市| 南皮县| 安西县| 双桥区| 盐城市| 阿坝| 苍山县| 涞水县| 泽库县| 南昌市| 河间市| 新乡市| 临泽县| 彭水| 扎赉特旗| 商洛市| 安龙县| 旬阳县| 静宁县| 志丹县| 甘孜县| 蓝山县| 夏津县| 怀远县| 沧州市| 日土县| 江油市| 东乡县| 张家口市| 布尔津县| 册亨县| 收藏| 会理县| 上栗县| 五台县| 金阳县| 海兴县| 奉贤区|