DBCP连接池使用方法

来源:互联网 发布:fast paxos java示例 编辑:程序博客网 时间:2024/06/18 02:28

1. 简单介绍

DBCP(DataBase Connection Pool)数据库连接池,是java数据库连接池的一种,由Apache开发,通过数据库连接池,可以让程序自动管理数据库连接的释放和断开。百度百科DBCP

2. 使用步骤

  1. 导入jar包(commons-dbcp-1.4.jar和commons-pool-1.5.6.jar),这些包都可以在官网下载,或者百度云下载链接:http://pan.baidu.com/s/1eSALKlk 密码:wlu9

  2. 使用代码如下:

    @Test    public void f1() throws SQLException {        BasicDataSource ds = new BasicDataSource();        //配置信息        ds.setDriverClassName("com.mysql.jdbc.Driver");//注册驱动        ds.setUrl("jdbc:mysql:///yourdb?useSSL=false");//url        ds.setUsername("root");//数据库用户名        ds.setPassword("123456");//数据库密码        Connection conn = (Connection) ds.getConnection();        String sql = "insert into category values(?, ?)";        PreparedStatement st = (PreparedStatement) conn.prepareStatement(sql);        st.setString(1, "c999");        st.setString(2, "drink");        int i = st.executeUpdate();        if(i == 1) {            System.out.println("success");        } else {            System.out.println("fail");        }    }

表结构什么的就不说了,主要是得到DataSource就好了,不过dbcp用的是BasicDataSource()而已
下面讲讲怎么通过配置文件的方式

  1. 如何配置文件
    • 编写一个properties文件,文件名为dbcp.properties,然后向文件中写入:
        #连接基本设置        driverClassName=com.mysql.jdbc.Driver        url=jdbc:mysql://localhost:3306/day07_db?useSSL=false        username=root        password=123456

实现jdbc操作:

    @Test    public void f2() throws Exception {        Properties prop = new Properties();        try {            prop.load(new FileInputStream("src/dbcp.properties"));        } catch (FileNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        DataSource ds = new BasicDataSourceFactory().createDataSource(prop);        Connection conn = (Connection) ds.getConnection();        String sql = "insert into category values(?, ?)";        PreparedStatement st = (PreparedStatement) conn.prepareStatement(sql);        st.setString(1, "c998");        st.setString(2, "drink");        int i = st.executeUpdate();        if(i == 1) {            System.out.println("success");        } else {            System.out.println("fail");        }    }
原创粉丝点击