C3P0连接MySQL8.0 遇到的问题

一、C3P0连接MySQL8.0 遇到的问题

自己的MySQL版本是8.0.16,自己写c3p0-config.xml的时候一直连接不上,报错,后来查询得知,MySQL8以上的驱动包需要使用新的,不能用之前的老版本的驱动包,同时也要更新C3P0的驱动包

我JAR包版本选择的是:

c3p0-0.9.2-pre5.jar

mchange-commons-java-0.2.3.jar

mysql-connector-java-8.0.16.jar

c3p0-config.xml配置文件是:


<c3p0-config>
  <default-config>
  	
  	<property name="driverClass">com.mysql.cj.jdbc.Driverproperty>
  	<property name="jdbcUrl">jdbc:mysql://localhost:3306/db_czjf?userSSL=false&serverTimezone=UTC&characterEncoding=utf-8&autoReconnect=trueproperty>
  	<property name="user">rootproperty>
  	<property name="password">rootproperty>
  	
	<property name="acquireIncrement">5property>
	
	<property name="initialPoolSize">20property>
	
	<property name="minPoolSize">10property>
  	
  	<property name="maxPoolSize">20property>
  	
	<property name="maxStatements">0property>
	
	<property name="maxStatementsPerConnection">5property>
  default-config>
c3p0-config>

注意**&**的使用

二、要注意几个问题:

1、版本不同包的路径都不同,驱动路径改变:
MySql8.0及以上对应的应用程序数据库链接驱动包要更新为8.0版本,否则会报驱动异常。
mysql-connector-5.1.0版本下 com.mysql.jdbc.Driver

//连接数据驱动
	private static String driver="com.mysql.jdbc.Driver";
	//数据连接URL地址
	private static String url="jdbc:mysql://localhost:3306/qsx_register";
	//数据库访问用户
	private static String user="root";
	//数据库访问密码
	private static String password="root";

mysql-connector-8.0.0版本下 com.mysql.cj.jdbc.Driver

//连接数据驱动
	private static String driver="com.mysql.cj.jdbc.Driver";
	//数据连接URL地址
	private static String url="jdbc:mysql://localhost:3306/qsx_register?userSSL=false&serverTimezone=UTC";
	//数据库访问用户
	private static String user="root";
	//数据库访问密码
	private static String password="root";

2、多出了useSSL=false&serverTimezone=UTC代码
useSSL=false 8.0之前,连接数据库是需要建立ssl连接的,而8.0之后不需要,所以需要关闭。

serverTimeZone=UTC(然后设置服务器时区为UTC)

UTC是什么?
CST可视为美国、澳大利亚、古巴或中国的标准时间。
CST可以为如下4个不同的时区的缩写:

美国中部时间:Central Standard Time (USA) UT-6:00
澳大利亚中部时间:Central Standard Time (Australia) UT+9:30
中国标准时间:China Standard Time UT+8:00
古巴标准时间:Cuba Standard Time UT-4:00

三、com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@解决方案

在配置c3p0通过配置文件创建数据源对象时,报错信息如题。
原因一:你的数据库各类信息是否正确,url,username,password是否正确。
原因二:是否将必需的jar包都放进工程中
原因三:你导入的mysql的jar包和你设置的驱动信息是否一致,若是5.x版本,是com.mysql.jdbc.Driver;6.x是com.mysql.cj.jdbc.Driver。这个应保持一致。
原因四:若是通过.xml文件来配置信息,注意!xml文件必须放在src文件夹根目录下,前面不能包裹住各种文件夹或包。即使你的主程序和.xml文件在同一文件夹或包下也不行(除非该包是default package),因为主程序找配置文件是在src根目录下面去找!

你可能感兴趣的:(Java,mysql,数据库,java,jdbc)