DBUtils介紹

  1、DBUtils介紹 apachemysql

  什麼是DBUtils,它的做用程序員

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

  DBUtils封裝了對JDBC的操做,簡化了JDBC操做,能夠少寫代碼。數據庫

  1.對於數據表的讀操做,他能夠把結果轉換成List,Array,Set等Java集合,便於程序員操做apache

  2.對於數據表的寫操做,也變得很簡單(只需寫sql語句)編程

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

  2、DBUtils的三個核心對象ide

  QueryRunner類函數

  ResultSetHandler接口工具

  DBUtils類

  QueryRunner類

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

  它主要有三個方法

  query() //用於執行select

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

  batch() //批處理

  ResultSetHandler接口

  用於定義select操做後,怎樣封裝結果集

  DBUtils類

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

  3、Dbutils快速入門

  導入jar包

  建立QueryRunner對象

  使用query方法執行select語句

  使用ResultSetHandler封裝結果集

  使用DBUtils類釋放資源

  DBUtils快速入門實現步驟:

  導入jar包

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

  建立QueryRunner對象

  使用query方法執行select語句

  使用ResultSetHandler封裝結果集

  使用DBUtils類釋放資源

  4、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);

  }

  }

  5、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

相關文章
相關標籤/搜索