使用c3p0数据库连接池的各种报错警告

  • 使用c3p0数据库连接池的时候,先导入了三个jar包在lib 文件夹中,
  1. c3p0-0.9.5.2.jar
  2. mchange-commons-java-0.2.3.4.jar
  3. mysql-connector-java-8.0.13.jar

注意下载的 c3p0 jar包要与mchange-commons-java jar包和mysql-connector-java jar包以及你的mysql版本一致,不一致会报错

  • 然后写c3p0-config.xml配置文件
<c3p0-config><!-- 使用默认的配置读取连接池对象 ,也就是不传参的情况下获取DataSource,使用默认的配置--><default-config><!--  连接参数 --><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://localhost:3306/db3?useSSL=false</property><property name="user">root</property><property name="password">root</property><!-- 连接池参数 --><!--初始化申请的连接数量--><property name="initialPoolSize">5</property><!--最大的连接数量--><property name="maxPoolSize">10</property><!--超时时间--><property name="checkoutTimeout">3000</property></default-config><named-config name="otherc3p0"><!--  连接参数,传参使用这个 --><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://localhost:3306/db3?useSSL=false</property><property name="user">root</property><property name="password">root</property><!-- 连接池参数 --><property name="initialPoolSize">5</property><property name="maxPoolSize">8</property><property name="checkoutTimeout">1000</property></named-config>
</c3p0-config>

在此处要注意版本的不同的差异,如果时mysql 5.x 则在配置文件中
<property name="jdbcUrl">jdbc:mysql://localhost:3306/database?useSSL=false</property>
如果是mysql 8之后,<property name="jdbcUrl">jdbc:mysql://localhost:3306/database?useSSL=false&amp;serverTimezone=UTC</property>

如果你这里配置的不对会报错如下

警告: com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@2200d7 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception:
java.sql.SQLException: The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76)at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:207)at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:175)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:206)at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:203)at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138)at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125)at com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)
Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.at sun.reflect.GeneratedConstructorAccessor5.newInstance(Unknown Source)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:423)at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:85)at com.mysql.cj.util.TimeUtil.getCanonicalTimezone(TimeUtil.java:132)at com.mysql.cj.protocol.a.NativeProtocol.configureTimezone(NativeProtocol.java:2234)at com.mysql.cj.protocol.a.NativeProtocol.initServerSession(NativeProtocol.java:2258)at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1319)at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:966)at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:825)... 12 more

然后运行发现报错信息

一月 28, 2021 7:23:24 下午 com.mchange.v2.c3p0.C3P0Registry
信息: Initializing c3p0-0.9.5.2 [built 08-December-2015 22:06:04 -0800; debug? true; trace: 10]
一月 28, 2021 7:23:24 下午 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource
信息: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource -> caller, dataSourceName -> 1hgeb5tafk6ijyw11flv6q|5387f9e0, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> null, extensions -> {}, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, forceSynchronousCheckins -> false, forceUseNamedDriverClass -> false, identityToken -> 1hgeb5tafk6ijyw11flv6q|5387f9e0, idleConnectionTestPeriod -> 0, initialPoolSize -> 3, jdbcUrl -> null, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 15, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 3, numHelperThreads -> 3, preferredTestQuery -> null, privilegeSpawnedThreads -> false, properties -> {}, propertyCycle -> 0, statementCacheNumDeferredCloseThreads -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, userOverrides -> {}, usesTraditionalReflectiveProxies -> false ]
一月 28, 2021 7:23:54 下午 com.mchange.v2.resourcepool.BasicResourcePool
警告: com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@6a2fe339 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception:
java.lang.NullPointerExceptionat com.mysql.fabric.jdbc.FabricMySQLDriver.parseFabricURL(FabricMySQLDriver.java:97)at com.mysql.fabric.jdbc.FabricMySQLDriver.acceptsURL(FabricMySQLDriver.java:93)at java.sql.DriverManager.getDriver(DriverManager.java:299)at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:285)at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:161)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:161)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:147)at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:202)at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138)at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125)at com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)

注意其中的关键报错信息点

警告: com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@6a2fe339 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: java.lang.NullPointerException
一般此处报错空指针异常就是我们配置文件位置错误了,xml文件必须放在src文件夹根目录下,前面不能包裹住各种文件夹或包。因为主程序找配置文件是在src根目录下面去找.
(事实上我的文件就在src目录下,但还是报错了这个信息,于是我复制了c3p0-config.xml配置文件将其放在了项目下,也就是说src文件上一级文件的目录下,然后没有报错信息了,我估计是我的project strcture中设置路径有问题,如果你也遇到了和我一样的问题可以这样试一下)


  • 写一个测试代码看看
package src.cn.itcast.datasource.c3p0;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
/*** c3p0的演示*/
public class C3P0Demo1 {public static void main(String[] args) throws SQLException {//1.创建数据库连接池对象DataSource ds=new ComboPooledDataSource();//2.获取连接对象Connection conn = ds.getConnection();//3.打印System.out.println(conn);}
}

运行成功(上面红色的不是报错是日志信息不用在意。)

【JDBC】使用c3p0数据库连接池的各种报错警告相关推荐

  1. 【C3P0】解决使用c3p0数据库连接池的各种报错警告: Having failed to acquire a resource, com.mchange.v2.resourcepool

    运行环境 工具: IntelliJ IDEA java version "1.8.0_261" MySQL"5.7.19" 在使用IDEA连接c3p0数据库时, ...

  2. Java数据库开发与应用之MySQL数据库、JDBC操作数据库、C3P0数据库连接池,Java反射等

    MySQL数据库,JDBC接口,MyBatis框架等,掌握的数据的存放和管理. Java数据库开发基础,介绍MySQL数据库.JDBC操作数据库.C3P0数据库连接池,Java反射等内容,进行油画商城 ...

  3. [原创]java WEB学习笔记80:Hibernate学习之路--- hibernate配置文件:JDBC 连接属性,C3P0 数据库连接池属性等...

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. 数据库连接池及C3P0数据库连接池技术

    数据库连接池(重要) 注意数据库连接池只是简化获得数据库连接对象和关流的部门 1.数据库连接池: 1.概念: 其实就是一个容器(在Java中就是集合),存在数据库连接的容器,当系统初始化好后,容器被创 ...

  5. C3P0数据库连接池的配置

    在pom.xml文件中导入jar包 <dependency><groupId>com.mchange</groupId><artifactId>c3p0 ...

  6. 2021-3-28 JDBC入门包含数据库连接池

    里面的数据库连接池所需要的jar包可以在这里面下载: https://blog.csdn.net/m0_49647974/article/details/115287069 文章目录 一.概念:Jav ...

  7. c3p0 数据库连接池

    C3P0连接池 c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展.c3p0一般是与Hibernate,Spring等框架一块使用的,当然也可以 ...

  8. JDBC开发之数据库连接池

    JDBC开发之数据库连接池 使用数据库连接池优化程序性能 应用程序直接获取链接的缺点:用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万 ...

  9. 数据库连接池种类、C3P0数据库连接池、德鲁伊数据库连接池

    数据库连接池种类 1.JDBC的数据库连接池使用javax.sql.DataSource来表示,DataSource只是一个接口,该接口通常由第三方提供实现 2.C3P0数据库连接池,速度相对较慢,稳 ...

最新文章

  1. 配置Vim的显示样式
  2. error LNK2026: 模块对于 SAFESEH 映像是不安全的
  3. (七)立体标定与立体校正 【计算机视觉学习笔记--双目视觉几何框架系列】
  4. 使用Azure Pipelines从GitHub发布NuGet包
  5. MMN实用架构过程概览
  6. 计算机网络中的高层应用,第四章计算机网络中的高层应用-.ppt
  7. IP地址开启https
  8. cogs——2416. [HZOI 2016]公路修建
  9. 微信小程序地图点聚合
  10. 淘宝图片的尺寸是多少?手把手教你快速制作淘宝店图
  11. 单核性能强的服务器cpu,单核能力最强的cpu是哪个?
  12. pdf合并、生成目录大纲
  13. 数字媒体技术考点整理
  14. c++空指针的定义-0L
  15. 告别公共网盘,用闲置电脑或个人工作PC建立私有云超级网盘!
  16. 数学之美读书笔记第一章
  17. css实现文字或者div盒子水平垂直居中的方法
  18. Object-Oriented Programming Summary Ⅰ
  19. JS逆向解密凡科网密码
  20. 【java+设计模式】

热门文章

  1. 如何自己宣传博客网站?
  2. 计算机专业可以从事测绘行业吗,测绘类专业就业前景怎么样
  3. “好像”还是“好象”
  4. linux网络电视盒安装,网络电视盒怎么安装 网络电视盒安装步骤【详细介绍】...
  5. 免费文本编辑器--RJ TextEd功能介绍及评测
  6. vue开发项目必备知识
  7. 三国志英杰传高级玩法
  8. wr890n虚拟服务器,TP-Link TL-WR890N路由器怎么设置?
  9. 「数据库选型」抛弃MongoDB,拥抱PostgreSQL,工作更轻松
  10. Centos7.4下安装Nvidia驱动