前言:
c3p0是存放了一堆Connection对象的连接池。避免了java每次加载驱动和连接数据库
dbutils简化了Java执行sql的语句,并将结果封装成对象列表。
过程:
1、新建工程,导入jar包,添加build path。
2、在src下新建c3p0.properties。配置文件的内容如下。
注意:配置文件必须要为:”c3p0.”
3、我的数据库为:
4、创建一个与此数据库相对应的类
package dbutilsAndC3p0;
public class Student {
private int id;
private String name;
private String project;
private int score;
public Student() {
}
public Student(int id, String name, String project, int score) {
this.id = id;
this.name = name;
this.project = project;
this.score = score;
}
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 String getProject() {
return project;
}
public void setProject(String project) {
this.project = project;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", project=" + project + ", score=" + score + "]";
}
}
5、获取连接对象,并执行sql语句,将结果封装成对象列表。
package dbutilsAndC3p0;
import java.sql.SQLException;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.junit.Test;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class JDBCDemo {
@Test
public void test(){
try {
//获取连接对象,c3p0会自动根据它的配置文件,连接到数据库
ComboPooledDataSource dataSource = new ComboPooledDataSource();
QueryRunner qr = new QueryRunner(dataSource);
//执行sql语句,并将结果封装成对象列表
List<Student> list = qr.query("select * from student", new BeanListHandler<Student>(Student.class));
for (Student student : list) {
System.out.println(student);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
6、结果如下: