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); 
        } 
}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。