使用dbutils完成curd操作

Li_815761634發表於2018-08-13

技術分析:
    dbutils
dbutils:
    是apache組織的一個工具類,jdbc的框架,更方便我們使用
    使用步驟:
        1.匯入jar包(commons-dbutils-1.4.jar)
        2.建立一個queryrunner類
            queryrunner作用:操作sql語句
                構造方法:
                    new QueryRunner(Datasource ds);
        3.編寫sql
        4.執行sql
            query(..):執行r操作
            update(...):執行cud操作
////////////////////////////
核心類或介面
    QueryRunner:類名
        作用:操作sql語句
        構造器:
            new QueryRunner(Datasource ds);
        注意:
            底層幫我們建立連線,建立語句執行者 ,釋放資源.
        常用方法:
            query(..):
            update(..):
    
    DbUtils:釋放資源,控制事務 類
        closeQuietly(conn):內部處理了異常
        commitAndClose(Connection conn):提交事務並釋放連線
        ....
    
    ResultSetHandler:封裝結果集 介面
        
         ArrayHandler, ArrayListHandler, BeanHandler, BeanListHandler, ColumnListHandler, KeyedHandler, MapHandler, MapListHandler, ScalarHandler
         
         (瞭解)ArrayHandler, 將查詢結果的第一條記錄封裝成陣列,返回
         (瞭解)ArrayListHandler, 將查詢結果的每一條記錄封裝成陣列,將每一個陣列放入list中返回
         ★★BeanHandler, 將查詢結果的第一條記錄封裝成指定的bean物件,返回
         ★★BeanListHandler, 將查詢結果的每一條記錄封裝成指定的bean物件,將每一個bean物件放入list中 返回.
         (瞭解)ColumnListHandler, 將查詢結果的指定一列放入list中返回 
         (瞭解)MapHandler, 將查詢結果的第一條記錄封裝成map,欄位名作為key,值為value 返回
         ★MapListHandler, 將查詢結果的每一條記錄封裝map集合,將每一個map集合放入list中返回
         ★ScalarHandler,針對於聚合函式 例如:count(*) 返回的是一個Long值
        


import java.sql.SQLException;

import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.junit.Test;

import com.itheima.utils.DataSourceUtils;

public class CURDDemo {
	@Test
	public void insert() throws SQLException{
		//1.建立queryrunner類
		QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());
		
		//2.編寫sql
		String sql="insert into category values(?,?)";
		
		
		//3.執行sql
		qr.update(sql, "c201","廚房電器");
		
	}
	
	@Test
	public void update() throws SQLException{
		QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
		
		String sql="update category set cname = ? where cid = ?";
		
		qr.update(sql, "達電器","c000");
	}
}

 

 

import java.sql.SQLException;
import java.util.Arrays;
import java.util.List;
import java.util.Map;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayHandler;
import org.apache.commons.dbutils.handlers.ArrayListHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import org.junit.Test;

import com.itheima.domain.Category;
import com.itheima.utils.DataSourceUtils;

public class ResultHandleDemo {
	@Test
	public void arrayHandler() throws SQLException{
		QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
		
		String sql="select * from category";
		
		Object[] query = qr.query(sql, new ArrayHandler());
		System.out.println(Arrays.toString(query));
	}
	
	@Test
	public void arrayListHandler() throws SQLException{
		QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
		
		String sql="select * from category";
		List<Object[]> list = qr.query(sql, new ArrayListHandler());
		for (Object[] obj : list) {
			System.out.println(Arrays.toString(obj));
		}
	}
	
	
	@Test
	public void beanHandler() throws SQLException{
		QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
		
		String sql="select * from category";
		
		Category bean = qr.query(sql, new BeanHandler<>(Category.class));
		
		System.out.println(bean);
	}
	
	@Test
	public void beanListHandler() throws SQLException{
		QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
		
		String sql="select * from category";
		
		List<Category> list = qr.query(sql, new BeanListHandler<>(Category.class));
		
		for (Category bean : list) {
			
			System.out.println(bean);
		}
	}
	
	@Test
	public void mapHandler() throws SQLException{
		QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
		
		String sql="select * from category";
		
		Map<String, Object> map = qr.query(sql, new MapHandler());
		System.out.println(map);
	}
	
	@Test
	public void mapListHandler() throws SQLException{
		QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
		
		String sql="select * from category";
		
		List<Map<String, Object>> list = qr.query(sql, new MapListHandler());
		for (Map<String, Object> map : list) {
			System.out.println(map);
		}
	}
	
	@Test
	public void scalarHandler() throws SQLException{
		QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
		
		String sql="select count(*) from category";
		
		Object obj = qr.query(sql, new ScalarHandler());
		System.out.println(obj.getClass().getName());
	}
	
}

 

相關文章