DBCP连接池使用方法

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");
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值