一、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組態檔是:
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<!-- 連接資料庫的4項基本引數 -->
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/db_czjf?userSSL=false&serverTimezone=UTC&characterEncoding=utf-8&autoReconnect=true</property>
<property name="user">root</property>
<property name="password">root</property>
<!-- 如果池中資料連接不夠時一次增長多少個 -->
<property name="acquireIncrement">5</property>
<!-- 初始化連接數 -->
<property name="initialPoolSize">20</property>
<!-- 最小連接受 -->
<property name="minPoolSize">10</property>
<!-- 最大連接數 -->
<property name="maxPoolSize">20</property>
<!-- -JDBC的標準引數,用以控制資料源內加載的PreparedStatements數量 -->
<property name="maxStatements">0</property>
<!-- 連接池內單個連接所擁有的最大快取statements數 -->
<property name="maxStatementsPerConnection">5</property>
</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根目錄下面去找!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/249537.html
標籤:其他
上一篇:Redis-第四章節-基礎知識
下一篇:日語N4第二課
