JavaWeb基础篇(八)--dbutils的使用

一、DBUtils简介

1.commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。

2.三个核心类

(1)Dbutils工具类     和事务相关的方法

(2)ResultSetHander接口的实现类

(3)QueryRunner类

二、使用

  1. QueryRunner类 -- 做增删改查的操作
(1)方法      
  * QueryRunner()   
  * QueryRunner(DataSource ds) 
       
  * int update(String sql, Object... params)      
  * int update(Connection conn, String sql, Object... params)  
    
  *  <T> T query(String sql, ResultSetHandler<T> rsh, Object... params)       
  *  <T> T query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params)   

(2)组合 
   没有事务
    * QueryRunner(DataSource ds)     -- 传入连接池(获取连接)      
    * int update(String sql, Object... params)        
    * <T> T query(String sql, ResultSetHandler<T> rsh, Object... params)   

   和事物相关的(conn向下传递)  
    * QueryRunner()      
    * int update(Connection conn, String sql, Object... params)      
    * <T> T query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) 

举例子:

@Test
 public void run(){
     QueryRunner runner = new QueryRunner(MyJdbcUtils_02.dataSource);
 
     try {
         runner.update("insert into orders(order_no,p_id) values(?,?);","test",2);
     } catch (SQLException e) {
         e.printStackTrace();
     }
 }

2.ResultSetHander接口,可以用户自己来实现。重写方法。

(1)BeanHandler         -- 把一条记录封装到JavaBean对象中   
(2)BeanListHandler       -- 把一条记录封装到JavaBean对象中,把多个JavaBean放入List集合中。
(3)ArrayHandler        -- 把一条记录封装到数组中   
(4)ArrayListHandler,      -- 把一条记录封装到数组中,把数组存放在集合中 
(5)MapHandler          -- 一条记录封装到Map集合   
(6)MapListHandler        -- 一条记录封装到Map集合,把Map集合存放到集合中  
(7)ScalarHandler        -- 封装count(*) 单行单列数据 
(8)ColumnListHandler       -- 查询是一列数据,把一列数据封装到集合中。 
(9)KeyedHandler        -- 把一条记录封装到一个map集合,把该map集合又存放在另一个map集合中。 

 * 重点    BeanHandler     BeanListHandler ScalarHandler 

 例子:

@Test
 public void run3(){
     QueryRunner runner = new QueryRunner(MyJdbcUtils_02.dataSource);
     String sql = "select * from orders;";
 
     try {
         List<Orders> list = runner.query(sql,new BeanListHandler<Orders>(Orders.class));
         System.out.println(list.get(1).getOrder_no());
     } catch (SQLException e) {
         e.printStackTrace();
     }
 }

3.Dbutils类

和事物相关的方法  

  *  static void  rollbackAndClose(Connection conn)   

  *  static void  rollback(Connection conn)   

  *  static void  commitAndClose(Connection conn)    

猜你喜欢

转载自blog.csdn.net/weixin_43815050/article/details/87651457