Dbutil使用

Dbutil 的使用小结

Java与数据库的连接包括:导包、注册驱动、获取与数据库的连接对象、获取SQL语句的执行者对象、获取结果集对象、关闭连接等。其中连接池包含了注册驱动和获取与数据库连接两个步骤,而dbutils简化了其他步骤。

DBUtils使用

DBUtils封装了JDBC的操作,核心功能如下: Dbutils三个核心功能介绍

  1. QueryRunner中提供对sql语句操作的API.
  2. ResultSetHandler接口,用于定义select操作后,怎样封装结果集.
  3. DbUtils类是一个工具类,定义了关闭资源与事务处理的方法

QueryRunner核心类:

  1. QueryRunner(DataSource ds) ;传入参数为连接池
  2. update(String sql, Object… params) ,执行insert update delete操作
  3. query(String sql, ResultSetHandler rsh, Object… params) ,执行 select操作

ResultSetHandler结果集处理类

在这里插入图片描述

DbUtils操作数据库的用法

对于数据库操作,就是增删改查。
1) 在进行查询(select)时,对于直接利用JDBC API访问数据库时,大多都采用两种返回值,一种是取得的结果集是List,一种是实体类(VO)。
2) 在进行增删改(insert,delete,update)时,对于直接利用JDBC API访问数据库时,返回值一般都是void,因为在增删改之后成功无结果集返回。
下面我就来说说这个DbUtils的常用方法的用法
在进行操作之前,我们先来说说,DbUtils加载数据库驱动和创建数据库连接的一些通用方法,下面的实例都用sql server 2005 做示范。
DbUtils加载驱动
(1) 加载驱动:DbUtils.loadDriver(“驱动程序的字符串”):
(2) 创建连接:创建数据库连接,这个就是JDBC中的方法。
(3) 关闭连接:DbUtils.close(“数据库连接”);
代码如下:

 public Connection openConnection() throwsSQLException 
              { 
                  DbUtils.loadDriver(DRIVATENAME); 
               returnDriverManager.getConnection(URL,UID,PWD); 
         } 
          
        public void closeConnection(conn) 
         {
             DbUtils.close(conn); 
          }

DRIVATENAM代表加载驱动的字符串
URL代表加载驱动的连接字符串
UID代表访问数据库的用户名 PWD代表访问数据库的密码

  1.  查询 
    

(1)查询一条数据

 public Object load(String sql,Object[]params,ResultSetHandler rsh) throws   SQLException 
          { 
              QueryRunner run= newQueryRunner(); 
              Object result=run.query(conn, sql,params, rsh);   
                                        //执行sql语句 
              DbUtils.close(conn); //关闭连接 
             return result; //返回结果(Object) 
         } 
          
         public List executequery(String sql,Object[]params,ResultSetHandler rsh) throws SQLException 
          { 
              QueryRunner run = newQueryRunner(); 
            List result= (List) run.query(conn,sql, params, rsh); 
              DbUtils.close(conn); 
             return result; 
          }

(2)查询多条数据

   public List executequery(String sql,ResultSetHandlerrsh) throws SQLException 
         { 
             open(); 
            QueryRunner run = newQueryRunner(); 
            List result= (List) run.query(conn,sql, rsh); 
             DbUtils.close(conn); 
            return result; 
          }
  1.  增删改
    
public void update(String sql,Object[] params) throwsSQLException 
        { 
            QueryRunner run = newQueryRunner(); 
           run.update(conn,sql,params); 
            DbUtils.close(conn); 
           }

Dbutil 的使用示例

  • DBUtilsDemo.java
import java.sql.SQLException;
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.ColumnListHandler;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;

import cn.simon.jdbc.domain.Category;

/**
 *  DBUtils执行数据库查询操作
 *  	1.QueryRunner(DataSource)
 *  	2.query(String sql, ResultSetHandler<T> rsh, Object... params); // 主要执行查询
 */

public class DBUtilsDemo {
	public static void main(String[] args) throws SQLException {
		// TODO Auto-generated method stub

//		queryDemo01();
//		queryDemo02();
//		queryDemo03();
//		queryDemo04();
//		queryDemo05();
		queryDemo06();
//		queryDemo07();
//		queryDemo08();
	}
	
	// ArrayHandler处理类的使用
	public static void queryDemo01() throws SQLException{
		// 1.创建QueryRunner对象
		QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
		// 2.执行查询
		Object[] objs = qr.query("select * from category where cid = ?", new ArrayHandler(), 1);
		for(Object o: objs){		// object[]中保存了object对象
			System.out.println(o);
		}
	}
	
	// ArrayListHandler
	public static void queryDemo02() throws SQLException{
		// 1.创建QueryRunner对象
		QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
		// 2.执行查询
		List<Object[]> objs = qr.query("select * from category ", new ArrayListHandler());
		for (Object[] objects : objs) {
			System.out.println(objects[0]+"\t"+objects[1]);
		}
	}
	
	// BeanHandler处理类的使用
	public static void queryDemo03() throws SQLException{
		// 1.创建QueryRunner对象
		QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
		// 2.执行查询
		String sql = "select * from category";
		Category c = qr.query(sql, new BeanHandler<Category>(Category.class));
		System.out.println(c);
	}
	
	// BeanListHandler
	public static void queryDemo04() throws SQLException{
		// 1.创建QueryRunner对象
		QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
		// 2.执行查询
		String sql = "select * from category";
		List<Category> c = qr.query(sql, new BeanListHandler<Category>(Category.class));
		for (Category category : c) {
			System.out.println(category);
		}
	}
	
	// ColumnListHandler处理类的使用
	public static void queryDemo05() throws SQLException{
		// 1.创建QueryRunner对象
		QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
		// 2.执行查询
		String sql = "select * from category";
		List<Object> c = qr.query(sql, new ColumnListHandler<Object>("cname"));
		System.out.println(c);
	}
	
	// MapHandler处理类的使用
	public static void queryDemo06() throws SQLException{
		// 1.创建QueryRunner对象
		QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
		// 2.执行查询
		String sql = "select * from category";
		Map<String, Object> map = qr.query(sql, new MapHandler());
		// 3.
		System.out.println(map);
	}
	
	// MapListHandler处理类的使用
	public static void queryDemo07() throws SQLException{
		// 1.创建QueryRunner对象
		QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
		// 2.执行查询
		String sql = "select * from category";
		List<Map<String, Object>> maps = qr.query(sql, new MapListHandler());
		// 3.List
		System.out.println(maps);
	}
	
	// MapListHandler处理类的使用
	public static void queryDemo08() throws SQLException{
		// 1.创建QueryRunner对象
		QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
		// 2.执行查询
		String sql = "select count(*) from category";
		Long count = qr.query(sql, new ScalarHandler<Long>());
		// 3.List
		System.out.println(count);
	}
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值