DBUtils學習筆記

使用開源的DBUtils

概述

  • Commons DbUtils是Apache組織提供的一個對JDBC進行簡單封裝的開源工具類庫,使用它能夠簡化JDBC應用程序的開發,同時也不會影響程序的性能。
  • 簡化了增刪改查的操作。

用法

  • 增刪改
1. 導入jar包  commons-dbutils-1.4.jar
public class TestDBUtils {
	@Test
	public void testInsert() throws SQLException {
		ComboPooledDataSource dataSource = new ComboPooledDataSource();
		// dbutils 只是幫我們簡化了CRUD 的代碼, 但是連接的創建以及獲取工作。 不在他的考慮範圍
		QueryRunner queryRunner = new QueryRunner(dataSource);
		// 增加
		queryRunner.update("insert into category values (null , ? , ? )", "a", 1000);
		// 刪除
		queryRunner.update("delete from account where id = ?", 5);
		// 更新
		queryRunner.update("update account set money = ? where id = ?", 10000000, 6);
	}
}
1. 直接new接口的匿名實現類
QueryRunner queryRunner = new QueryRunner(new ComboPooledDataSource());
	Account  account =  queryRunner.query("select * from account where id = ?", new ResultSetHandler<Account>(){

		@Override
		public Account handle(ResultSet rs) throws SQLException {
			Account account  =  new Account();
			while(rs.next()){
				String name = rs.getString("name");
				int money = rs.getInt("money");
					
				account.setName(name);
				account.setMoney(money);
			}
			return account;
		} 
	 }, 6);
	System.out.println(account.toString());

2. 直接使用框架已經寫好的實現類。(最常用)
	QueryRunner queryRunner = new QueryRunner(new ComboPooledDataSource());
	//查詢單個對象
Account account = queryRunner.query("select * from account where id = ?", 
			new BeanHandler<Account>(Account.class), 8);
	System.out.println(category.toString());
	
	* 查詢多個對象
List<Category> list = queryRunner.query("select * from category", new BeanListHandler<Category>(Category.class));
	for (Category category : list) {
		System.out.println(category.toString());
	}

ResultSetHandler 常用的實現類

  • 以下兩個是使用頻率最高的
  1. BeanHandler 查詢到的單個數據封裝成一個對象

  2. BeanListHandler 查詢到的多個數據封裝 成一個List<對象>

  3. ArrayHandler, 查詢到的單個數據封裝成一個數組。

  4. ArrayListHandler, 查詢到的多個數據封裝成一個集合 ,集合裏面的元素是數組。

  5. MapHandler, 查詢到的單個數據封裝成一個map

  6. MapListHandler,查詢到的多個數據封裝成一個集合 ,集合裏面的元素是map。

  7. ColumnListHandler

  8. KeyedHandler

  9. ScalarHandler

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章