Dbutil使用

    科技2026-03-31  14

    Dbutil 的使用小结

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

    DBUtils使用

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

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

    QueryRunner核心类:

    QueryRunner(DataSource ds) ;传入参数为连接池update(String sql, Object… params) ,执行insert update delete操作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)查询一条数据

    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; } 增删改 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); } }
    Processed: 0.011, SQL: 9