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