JDBC三种连接池

连接池就是在用户量特别多的情况下,创建一个池子存放很多connection连接,等待客户来连接。减少了数据库服务器的创建,节省资源

一、DBCP连接池

          DBCP(DataBase Connection Pool),[数据库连接池]。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar由于建立数据库连接是一个非常耗时的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。

//DBCP连接池  使用静态代码块 加载配置文件 创建DBCP连接池
//此静态代码块主要是为了获得一个BasicDataSource连接池对象,再可以通过BasicDataSource的一个getConnection()获取每一个连接Connection
private static BasicDataSource dataSource;
    static {
        //使用类加载器加载文件  DbUtils_1是本类的类名 
        InputStream is = 
        DbUtils_1.class.getClassLoader().getResourceAsStream("DBCP.properties");
        //加载文件
        Properties properties = new Properties();
        try {
            properties.load(is);
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("配置文件加载失败!");
        }

        try {
            dataSource = BasicDataSourceFactory.createDataSource(properties); //得到了连接池对象
           // System.out.println(dataSource.hashCode());
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("创建DBCP连接池失败!");
        }
    }
#DBCP配置文件  properties文件
#属性不可改变!值可以改!
#连接设置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/school
username=root
password=root
#<!-- 初始化连接 -->
initialSize=10
#最大连接数量
maxTotal=50
#<!-- 最大空闲连接 -->
maxIdle=20
#<!-- 最小空闲连接 -->
minIdle=5
#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
maxWaitMillis=5000

二、c3p0连接池

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

private static ComboPooledDataSource dataSource;
    static {
        //c3p0连接池
         dataSource= new ComboPooledDataSource();

    }
#c3p0属性文件 名称必须为 c3p0.properties 文件!
#属性不可以修改!值可以修改
c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql://localhost:3306/school
c3p0.user=root
c3p0.password=root
c3p0.acquireIncrement=5
c3p0.initialPoolSize=20
c3p0.minPoolSize=10
c3p0.maxPoolSize=40
c3p0.checkoutTimeout=5000

三、Druid连接池

     Druid 是目前比较流行的高性能的,分布式列存储的OLAP框架(具体来说是MOLAP)

#Druid连接池也是为了获取DataSource连接池对象 通过对象的getConnection()来获取连接 
private static  DataSource dataSource;
    static {
        //使用Druid连接池
        //使用类加载器加载文件
        InputStream is = DbUtils_1.class.getClassLoader().getResourceAsStream("Druid.properties");
        //加载文件
        Properties properties = new Properties();
        try {
            properties.load(is);
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("配置文件加载失败!");
        }

        try {
//通过Druid的连接池工厂创建线程池
           dataSource = DruidDataSourceFactory.createDataSource(properties);
            // System.out.println(dataSource.hashCode());
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("创建DBCP连接池失败!");
        }
    }
#Druid配置文件 属性名不可更改! properties文件
#连接设置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/school
username=root
password=root
#<!-- 初始化连接 -->
initialSize=10
#最大连接数量
maxActive=50
#<!-- 最小空闲连接 -->
minIdle=5
#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
maxWait=5000

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值