javaweb-c3p0连接池

连接池

程序中连接如何管理?

  1. 连接资源宝贵;需要对连接管理

  2. 连接:

    1. 操作数据库,创建连接

    2. 操作结束, 关闭!

分析:

涉及频繁的连接的打开、关闭,影响程序的运行效率!

连接管理:

预先创建一组连接,有的时候每次取出一个; 用完后,放回;

最常用的连接池技术,Spring默认支持c3p0连接池。

核心类

1. CombopooledDataSource ds;

   引入,c3p0的jar包

2.使用链接池,创建链接

a)硬编码方式

    public void testCode() throws Exception{

        //创建连接池工具类
        ComboPooledDataSource dataSource = new ComboPooledDataSource();
        //设置连接参数
        dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/learnstruts");
        dataSource.setDriverClass("com.mysql.jdbc.Driver");
        dataSource.setUser("root");
        dataSource.setPassword("33269456.cx");

        dataSource.setInitialPoolSize(3);
        dataSource.setMaxPoolSize(6);

        //取得链接对象
        java.sql.Connection connection = dataSource.getConnection();

        connection.prepareStatement("DELETE FROM user WHERE userId = '1'").executeUpdate();

        //关闭
        connection.close();

    }

b)xml配置方式

c3p0-config.xml

<c3p0-config>
  <default-config>

     <property name="driverClass">com.mysql.jdbc.Driver</property>
     <property name="jdbcUrl">jdbc:mysql://localhost:3306/learnstruts</property>
     <property name="user">root</property> 
     <property name="password">33269456.cx</property>
     <property name="initialPoolSize">5</property> 
     <property name="maxPoolSize">10</property> 

  </default-config>

<!--
  <named-config name="oracleConfig">
    <property name="driverClass">com.mysql.jdbc.Driver</property> 
     <property name="jdbcUrl">jdbc:mysql:///day17</property> 
     <property name="user">root</property> 
     <property name="password">root</property> 
     <property name="initialPoolSize">5</property> 
     <property name="maxPoolSize">10</property> 
   </named-config>
-->
</c3p0-config>
 @Test
    public void testXML() throws Exception{

        //在这个类会自动加载src下的c3p0配置文件
        ComboPooledDataSource dataSource = new ComboPooledDataSource();

        Connection connection = dataSource.getConnection();

        connection.prepareStatement("DELETE FROM user WHERE userId = '1'");

        connection.close();
    }

JdbcUtil.javpackage com.cx.utils;

import javax.sql.DataSource;

import org.apache.commons.dbutils.QueryRunner;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class JdbcUtils {

    //初始化连接池
    private static DataSource dataSource;

//静态代码块加载连接池,只加载一次
static { //从连接池中拿到数据源 dataSource = new ComboPooledDataSource(); } //封装常用对象 public static DataSource getDataSource() { return dataSource; } public static QueryRunner getQueryRunner() { return new QueryRunner(dataSource); }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值