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

        } 

}

 

你可能感兴趣的:(commons)