iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >c3p0数据库连接池如何使用
  • 512
分享到

c3p0数据库连接池如何使用

2024-04-02 19:04:59 512人浏览 安东尼
摘要

这期内容当中小编将会给大家带来有关c3p0数据库连接池如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、jar包引用开源项目,自然要先下载人家的jar包,我这里有

这期内容当中小编将会给大家带来有关c3p0数据库连接池如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

一、jar

引用开源项目,自然要先下载人家的jar包,我这里有一个在云盘:c3p0-0.9.5-pre4.jar,这里面其实有三个包,是我在开源中国下载的最新的,如果你还想要更新的不妨自己到网上去搜一下。

二、配置文件

作为一个数据库连接池自然有很多参数要设置,当然就算你不设置也有默认的,不过那不一定能满足你的要求。这里的配置文件没有什么特别的要求,可以是xml也可以是properties甚至与txt都行,当然如果你愿意也可以写死在程序中。

下面是我的配置文件,我把它放在了src目录下,名字叫“c3p0.properties”

[java] view
plaincopy

  1. #jdbc基本信息  

  2. driverClass=oracle.jdbc.driver.OracleDriver  

  3. jdbcUrl=jdbc:oracle:thin:@127.0.0.1:1521/orcl  

  4. user=bctts  

  5. passWord=bctts123  


  6. #c3p0连接池信息  

  7. c3p0.minPoolSize=3

  8. c3p0.maxPoolSize=25


  9. #当连接池中的连接耗尽的时候c3p0一次同时获取的连接数  

  10. c3p0.acquireIncrement=3

  11. #定义在从数据库获取新连接失败后重复尝试的次数  

  12. c3p0.acquireRetryAttempts=60

  13. #两次连接中间隔时间,单位毫秒  

  14. c3p0.acquireRetryDelay=1000

  15. #连接关闭时默认将所有未提交的操作回滚  

  16. c3p0.autoCommitOnClose=false

  17. #当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出sqlException,如设为0则无限期等待。单位毫秒  

  18. c3p0.checkoutTimeout=3000

  19. #每120秒检查所有连接池中的空闲连接。Default: 0

  20. c3p0.idleConnectionTestPeriod=120

  21. #最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0

  22. c3p0.maxIdleTime=600

  23. #如果设为true那么在取得连接的同时将校验连接的有效性。Default: false

  24. c3p0.testConnectionOnCheckin=true

  25. #c3p0将建一张名为c3p0TestTable的空表,并使用其自带的查询语句进行测试。  

  26. jdbc.automaticTestTable = c3p0TestTable  


配置文件中的内容我就不解释了,相信你看一眼就能很明白。

三、代码实现

c3p0的使用非常简单,基本上就是三步搞定。

DataSource unPooled = DataSources.unpooledDataSource(url,jdbcproperties);//这里的第二个参数放的是连接数据库的信息,包括user、password等信息

DataSource ds = DataSources.pooledDataSource(unPooled,c3propertis);//这里面的第二个参数放的是c3p0连接池的配置信息

Connection conn = ds.getConnection();

这三句代码相信大家很容易看明白,也是使用c3p0连接池的核心代码,真的很简单。

下面是我写的例子,仅供参考

[java] view
plaincopy

  1. package com.bks.db;  


  2. import java.io.FileInputStream;  

  3. import java.sql.Connection;  

  4. import java.sql.SQLException;  

  5. import java.util.Properties;  


  6. import javax.sql.DataSource;  


  7. import com.mchange.v2.c3p0.DataSources;  


  8. public class C3P0ConnentionProvider {  


  9.     private static final String JDBC_DRIVER = "driverClass";  

  10.     private static final String JDBC_URL = "jdbcUrl";  


  11.     private static DataSource ds;  

  12.     

  13.     static{  

  14.         initDBSource();  

  15.     }  


  16.     

  17.     private static final void initDBSource(){  

  18.         Properties c3p0Pro = new Properties();  

  19.         try {  

  20.             //加载配置文件

  21.             c3p0Pro.load(new FileInputStream("./bin/c3p0.properties"));  

  22.         } catch (Exception e) {  

  23.             e.printStackTrace();  

  24.         }   


  25.         String drverClass = c3p0Pro.getProperty(JDBC_DRIVER);  

  26.         if(drverClass != null){  

  27.             try {  

  28.                 //加载驱动类

  29.                 Class.forName(drverClass);  

  30.             } catch (ClassNotFoundException e) {  

  31.                 e.printStackTrace();  

  32.             }  


  33.         }  


  34.         Properties jdbcpropes = new Properties();  

  35.         Properties c3propes = new Properties();  

  36.         for(Object key:c3p0Pro.keySet()){  

  37.             String skey = (String)key;  

  38.             if(skey.startsWith("c3p0.")){  

  39.                 c3propes.put(skey, c3p0Pro.getProperty(skey));  

  40.             }else{  

  41.                 jdbcpropes.put(skey, c3p0Pro.getProperty(skey));  

  42.             }  

  43.         }  


  44.         try {  

  45.             //建立连接池

  46.             DataSource unPooled = DataSources.unpooledDataSource(c3p0Pro.getProperty(JDBC_URL),jdbcpropes);  

  47.             ds = DataSources.pooledDataSource(unPooled,c3propes);  


  48.         } catch (SQLException e) {  

  49.             e.printStackTrace();  

  50.         }  

  51.     }  


  52.     

  53.     public static synchronized Connection getConnection() throws SQLException{  

  54.         final Connection conn = ds.getConnection();  

  55.         conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);  

  56.         return conn;  

  57.     }  

  58. }  


下面这个是测试的例子

[java] view
plaincopy

  1. package test.demo;  


  2. import java.sql.Connection;  

  3. import java.sql.PreparedStatement;  

  4. import java.sql.ResultSet;  

  5. import java.sql.SQLException;  


  6. import com.bks.db.C3P0ConnentionProvider;  


  7. public class Demo {  


  8.     public static void main(String[] args) {  

  9.         for(int i=0;i<30;i++){  

  10.             new Thread(new Demo2()).start();  

  11.         }  

  12.     }  


  13. }  


  14. class Demo2 implements Runnable{  


  15.     public void run(){  

  16.         try {  

  17.             Connection conn = C3P0ConnentionProvider.getConnection();  

  18.             PreparedStatement pst = conn.prepareStatement("select to_char(sysdate,'hh34:mm:ss') tim from dual");  

  19.             ResultSet rs = pst.executeQuery();  

  20.             rs.next();  

  21.             System.out.println(Thread.currentThread().getName()+":"+rs.getString(1));  

  22.             try {  

  23.                 Thread.sleep(10*1000);  

  24.             } catch (InterruptedException e) {  

  25.                 e.printStackTrace();  

  26.             }  


  27.         } catch (SQLException e) {  

  28.             e.printStackTrace();  

  29.         }  

  30.     }  

  31. }  

上述就是小编为大家分享的c3p0数据库连接池如何使用了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: c3p0数据库连接池如何使用

本文链接: https://www.lsjlt.com/news/57873.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c3p0数据库连接池如何使用
    这期内容当中小编将会给大家带来有关c3p0数据库连接池如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、jar包引用开源项目,自然要先下载人家的jar包,我这里有...
    99+
    2024-04-02
  • Java数据库连接池c3p0介绍
    目录1、配置参数1.1、基础配置1.2、连接池大小1.3、连接池大小和连接存活时间1.4、连接测试1.5、预编译池1.6、数据库中断的恢复1.7、自定义连接生命周期管理1.8、处理未...
    99+
    2024-04-02
  • c3p0数据库连接池如何在Java项目中使用
    今天就跟大家聊聊有关c3p0数据库连接池如何在Java项目中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。c3p0是什么c3p0的出现,是为了大大提高应用程序和数据库之间访问效率...
    99+
    2023-05-31
    java 数据库连接池 c3p0
  • c3p0数据库连接池如何进行配置
    这篇文章将为大家详细讲解有关c3p0数据库连接池如何进行配置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。c3p0的配置方式分为三种,分别是setters一个个地设置各个配置项2.类路径下提...
    99+
    2023-05-31
    c3p0 数据库连接池
  • Hibernate如何使用C3P0的连接池
    这篇文章主要介绍“Hibernate如何使用C3P0的连接池”,在日常操作中,相信很多人在Hibernate如何使用C3P0的连接池问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Hibernate如何使用C3...
    99+
    2023-06-03
  • c3p0数据库连接池配置总结
    C3P0是一个开源的数据库连接池,可以用于在Java应用程序中管理数据库连接。下面是C3P0数据库连接池的配置总结:1. 配置数据源...
    99+
    2023-10-12
    数据库
  • 详解springboot 使用c3p0数据库连接池的方法
    使用springboot开发时,默认使用内置的tomcat数据库连接池,经常碰到这种情况:运行时间一长,数据库连接中断了。所以使用c3p0连接池吧。引入的maven依赖:<dependency> <groupId>...
    99+
    2023-05-31
    spring boot c3p0
  • sqlite数据库连接池如何使用
    SQLite数据库是一种轻量级的数据库,不支持连接池。每个连接都是一个独立的数据库文件,因此在SQLite中并不需要使用连接池。 如...
    99+
    2024-04-09
    sqlite
  • Druid数据库连接池如何使用
    这篇文章主要介绍了Druid数据库连接池如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Druid数据库连接池如何使用文章都会有所收获,下面我们一起来看看吧。概述数据库连接池是个容器,负责分配、管理数据库...
    99+
    2023-07-05
  • 数据库连接池DBUtils使用
    一、简介   DBUtils简单说python实现的线程化数据库连接(连接池),DBUtils支持所有遵循DP-API 2规范的数据库连接模块,例如:mysql、sqlserver、oracle、sqlite3等,更多请参考官网:htt...
    99+
    2023-01-30
    数据库 连接池 DBUtils
  • 如何在SpringBoot 中使用 Druid 数据库连接池
    目录1.Maven中的pom文件2.SpringBoot 配置文件3.配置Druid数据源实例4.过滤器和Servlet5.使用@ServletComponentScan注解,6.D...
    99+
    2024-04-02
  • 数据库连接池如何配置
    这篇文章将为大家详细讲解有关数据库连接池如何配置,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、连接池配置1.1 maxWait参数表示从连接池获取连接的超时等待时间,...
    99+
    2024-04-02
  • 使用druid如何实现配置数据库连接池
    本篇文章为大家展示了使用druid如何实现配置数据库连接池 ,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。druid的配置项如下配置缺省值说明name 配置这个属性的意义在于,如果存在多个...
    99+
    2023-05-31
    数据库连接池 druid
  • 如何为 Golang 数据库连接配置连接池?
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-14
  • DBUtils数据库连接池
    使用数据库连接池技术,可以重复使用多个数据库连接,避免每次执行数据库操作都建立连接和关闭连接,也避免了大型应用同时占用多个数据库连接。 以连接mysql为例 import pymysql from DBUtils.PooledDB i...
    99+
    2023-01-31
    数据库 连接池 DBUtils
  • 如何查看mysql数据库连接池
    查看mysql数据库连接池的示例打开mysql终端输入以下命令查看。show full processlist;show open tables where In_use...
    99+
    2024-04-02
  • java数据库连接池如何实现
    Java数据库连接池可以通过以下步骤实现:1. 导入相应的依赖库:你需要导入数据库驱动程序和连接池的相关依赖库。一般来说,你需要使用...
    99+
    2023-09-16
    java 数据库
  • Java数据库连接池Tomcat怎么使用
    这篇文章主要介绍“Java数据库连接池Tomcat怎么使用”,在日常操作中,相信很多人在Java数据库连接池Tomcat怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java数据库连接池Tomcat怎...
    99+
    2023-06-25
  • proxool数据库连接池如何在Java项目中使用
    今天就跟大家聊聊有关proxool数据库连接池如何在Java项目中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Proxool是一种Java数据库连接池技术。sourceforg...
    99+
    2023-05-31
    java proxool 数据库连接池
  • 如何在springboot项目中使用druid数据库连接池
    如何在springboot项目中使用druid数据库连接池?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Druid连接池是阿里巴巴开源的数据库连接池项目,后来贡献给Apac...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作