- 概述
apache commons DBUtils是一个轻量级的JDBC封装,它提供了一些Jdbc的操作封装来简化数据查询和记录读取操作,相比hibernate、mybatis这些ORM框架,DBUtils只能算是一个简单的工具,不过这也是DBUtils的最大优点,就是——简单。
- 包依赖
只需要一个80多k的jar包即可:dbutils
- 核心类介绍
org.apache.commons.dbutils.DbUtils——连接管理类,用于载入jdbcDriver以及关闭Connection。
org.apache.commons.dbutils.QueryRunner——执行类,用于执行增删改查操作。
org.apache.commons.dbutils.ResultSetHandler<T>——ORM映射接口,它的几个子接口实现了对Java Bean的映射,比如BeanHandler<T>、MapHandler、ArrayHandler和BeanListHandler<T>等。
- 简单示例
User对象:
package com.nomouse;
import java.util.Date;
public class User {
private String id;
private String name;
private boolean sex;
private Date birthday;
private int count;
private double price;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isSex() {
return sex;
}
public void setSex(boolean sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public User(String id, String name, boolean sex, Date birthday, int count,
double price) {
super();
this.id = id;
this.name = name;
this.sex = sex;
this.birthday = birthday;
this.count = count;
this.price = price;
}
public User() {
super();
}
}
测试:
package com.nomouse;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;
public class Test {
public static void main(String[] args) {
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/test";
String jdbcDriver = "com.mysql.jdbc.Driver";
String user = "root";
String password = "password01!";
DbUtils.loadDriver(jdbcDriver);
try {
conn = DriverManager.getConnection(url, user, password);
QueryRunner qr = new QueryRunner();
String sql = "SELECT * FROM test where id=?";
ResultSetHandler<User> userHandler = new BeanHandler<User>(
User.class);
User user1 = qr.query(conn, sql, userHandler, "0", "1");
System.out.println(user1.getCount());
} catch (SQLException e) {
e.printStackTrace();
} finally {
DbUtils.closeQuietly(conn);
}
}
}