首页 > 代码库 > Apache_Commons_DbUtils数据库工具类说明

Apache_Commons_DbUtils数据库工具类说明

    这几天在学习jdbc时,无意中发现apache的DbUtils工具类。用DbUtils执行sql语句,和将查询结果封装为JavaBean超级好用,省时省力。

    DBUtils是个小巧的JDBC轻量级封装的工具包,其最核心的特性是结果集的封装,可以直接将查询出来的结果集封装成JavaBean,这就为我们做了最枯燥乏味、最容易出错的一大部分工作。

   一、DbUtils下载

下载地址:http://apache.fayea.com//commons/dbutils/binaries/commons-dbutils-1.6-bin.zip

文件解压后得到commons-dbutils-1.6.jar,这个就是所需的jar包。

二、准备工作

1、sql脚本

CREATE TABLE `user` (  `id` int(4) NOT NULL AUTO_INCREMENT,  `name` varchar(50) NOT NULL,  `password` varchar(50) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

2、建立与数据库表相对应的user java bean。

package testDbUtils;/** * 与user表对应的java bean * */public class User {    //DBUtils对结果集自动封装为JavaBean是有着苛刻要求的:必须满足JavaBean的规范,其次Bean的getter与setter方法的名字与结果集的列名一一对应    //不要求JavaBean的私有成员与表结果集列名一一对应。        String name;    String password;    //一定要有无参的构造函数,否则会报错    public User() {    }        public User(String name, String password) {        this.name = name;        this.password = password;    }        //Bean的getter与setter方法的名字与结果集的列名一一对应    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}        

3、随便写个数据库连接获取类

package testDbUtils;import java.sql.*;
public class ConnTools { private static String dirverClassName = "com.mysql.jdbc.Driver"; private static String url = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8"; private static String user = "root"; private static String password = "aaaaaa"; public static Connection makeConnection() { Connection conn = null; try { Class.forName(dirverClassName); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { conn = DriverManager.getConnection(url, user, password); } catch (SQLException e) { e.printStackTrace(); } return conn; } }

三、示例

1、insert、update、delete

//获取Connection   Connection conn = ConnTools.makeConnection();//获取dbUtils的QueryRunner对象。所有sql语句都通过QueryRunner对象执行  QueryRunner runner = new QueryRunner()  String sql = "insert into user(name,password) values (?,?)";//执行sql,插入也用update方法执行。   runner.update(conn, sql, user.getName(),user.getPassword());//关闭连接     DbUtils.close(conn);

2、查询,返回封装好的user bean 对象

 public static void test_find() throws SQLException {                 System.out.println("-------------test_find()-------------");                 //创建连接                 Connection conn = ConnTools.makeConnection();                 //创建SQL执行工具                 QueryRunner runner = new QueryRunner();                 //执行SQL查询,并获取结果                 List<User> list = runner.query(conn, "select id,name,pswd from user", new BeanListHandler(User.class));                 //输出查询结果                 for (User user : list) {                         System.out.println(user);                 }                 //关闭数据库连接                 DbUtils.closeQuietly(conn);         } }

 

Apache_Commons_DbUtils数据库工具类说明