DButils封装了比较多的DAO操作可以帮助我们简化封装jdbc的代码量
使用的方法和我之前那篇封装DAO的文章相似比较简单
导入jar包
表结构对象
package top.demo.test;
/*
*
* Studentinfo 表的 抽象对象
*
*
*
* */
public class Student {
/*
*
* 设计表结构
*
* CREAETE database Student charset='utf8';
*
* create table studentinfo(
* id_index int primary key auto_increment,
* name varchar(10),
* id_car int ,
* home_addr varchar(30)
* )charset='utf8';
*
*
* */
private int id;
private String name;
private int idcar;
private String home;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIdcar() {
return idcar;
}
public void setIdcar(int idcar) {
this.idcar = idcar;
}
public String getHome() {
return home;
}
public void setHome(String home) {
this.home = home;
}
public Student() {
super();
}
public Student(String name) {
super();
}
}
测试DButils
package top.demo.test;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.mchange.v2.c3p0.DataSources;
public class TestDbutils {
public static void main(String argv[]) throws SQLException {
test();
}
public static void test() throws SQLException {
//建立C3P0数据源对象 并获得连接
ComboPooledDataSource dataSources=new ComboPooledDataSource("myconfig");
Connection con =dataSources.getConnection();
//创建Dbutils提供的查询对象(线程安全)
QueryRunner query=new QueryRunner();
String sql="select name,home_addr as home,id_index as id from studentinfo;";
//创建结果集处理对象
ResultSetHandler<Student> resultSetHandler=new <Student> ResultSetHandler() {
@Override
public Object handle(ResultSet rs) throws SQLException {
while(rs.next()) {
ResultSetMetaData resmeta=rs.getMetaData();
int count=resmeta.getColumnCount();
for(int i=1;i<=count;i++) {
String name=resmeta.getColumnName(i);
Object value=rs.getObject(i);
System.out.print(name+": "+value+" ");
}
System.out.println();
}
return null;
}
};
//执行查询操作
query.query(con, sql,resultSetHandler);
//执行更新操作
sql="update studentinfo set home_addr=? where id_index=?";
int effect=query.update(con, sql, "中国","1");
System.out.println(effect);
//再次执行查询操作
sql="select name,home_addr as home,id_index as id from studentinfo where id_index=?;";
query.query(con, sql,resultSetHandler,"1");
con.close();
}
}
输出结果
如果看不明白 建议去看我之前那篇手动封装DAO的文章
name: 1 home_addr: 中国杭州 id_index: 1
name: 1 home_addr: hz id_index: 2
name: 你 home_addr: 杭州 id_index: 3
1
name: 1 home_addr: 中国 id_index: 1