dbutils和c3p0的结合使用

前言:

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、结果如下:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_42982169/article/details/82182293
今日推荐