【JavaSE】数据库连接池

DBCP

什么是?

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

怎么用?

1. 导入jar包  commons-dbcp.jar,commons-pool.jar

2.  不使用配置文件方式


        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost/users");
        dataSource.setUsername("root");
        dataSource.setPassword("root");

        
        conn = dataSource.getConnection();
        String sql = "select * from user";
        pstmt = conn.prepareStatement(sql);

        ...


3. 使用配置文件方式。

        1. 在 src 下定义配置文件 dbcp.properties. 内容如下: 


            #连接设置
            driverClassName=com.mysql.jdbc.Driver
            url=jdbc:mysql://localhost:3306/jdbc
            username=root
            password=root

            ...

        

        2. 使用代码读取配置文件,即可获取连接池

            Properties properties = new Properties();
            properties.load(new FileInputStream("src/dbcp.properties"));
            DataSource dataSource = BasicDataSourceFactory.createDataSource(properties);

            conn = dataSource.getConnection();
            String sql = "select * from user";
            pstmt = conn.prepareStatement(sql);

            ...
 

C3P0

什么是?

C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。

怎么用?

1. 拷贝jar 文件   c3p0-0.9.1.2.jar


2. 不使用配置文件方式

        ComboPooledDataSource dataSource = new ComboPooledDataSource();
        dataSource.setDriverClass("com.mysql.jdbc.Driver");
        dataSource.setJdbcUrl("jdbc:mysql://localhost/users");
        dataSource.setUser("root");
        dataSource.setPassword("root");

        conn = dataSource.getConnection();
        String sql = "select * from user";
        pstmt = conn.prepareStatement(sql);

        ...


3. 使用配置文件方式。

> c3p0的配置文件 支持 properties , 也支持 xml 方式。 不过开发中,一般使用xml方式来配置
    1.  src下, 创建xml文件,名为:c3p0-config.xml  注意此处,名字需要固定了。


            <c3p0-config>
                  <default-config>
                            <property name="driverClass">com.mysql.jdbc.Driver</property>
                            <property name="jdbcUrl">jdbc:mysql://localhost/user</property>
                            <property name="user">root</property>
                            <property name="password">root</property>
    
                        <!-- 可选配置 -->
                            <property name="initialPoolSize">5</property>
              </default-config>

        </c3p0-config>

            

    2. 代码中获取连接child对象

            ComboPooledDataSource dataSource = new ComboPooledDataSource();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值