C3P0版本问题,mchange-commons-0.2.jar 版本问题,mysql-connector-java-8.0.14版本问题解决之后,又遇到问题:
'serverTimezone' is not writable or has an invalid setter method
根据C3P0配置中的其他参数,比如initialPoolSize 定位到是c3p0-0.9.5.3.jar包下面AbstractComboPooledDataSource.class文件,搜索serverTimezone 确实没有这个方法。查找了mchange官网, 最新的就是c3p0-0.9.5.3.jar , 返回到https://www.mchange.com/projects/ 显示的是403 Forbidden。一度想放弃。
配置文件:
<!-- 配置 C3P0 数据源 -->
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="root"></property>
<property name="password" value="123456"></property>
<property name="jdbcUrl"
value="jdbc:mysql://localhost:3306/spring4?useSSL=false"/>
<property name="driverClass" value="com.mysql.cj.jdbc.Driver"/>
<property name="initialPoolSize" value="5"></property>
<property name="maxPoolSize" value="10"></property>
<!-- <property name ="serverTimezone" value ="Asia/Shanghai"></property>
-->
</bean>
解决方法:
方法1:
C:\Users\Shinelon>mysql -u root -p
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4183
Server version: 8.0.13 MySQL Community Server - GPL
mysql>
mysql> set global time_zone='+8:00';
Query OK, 0 rows affected (0.00 sec)
方法2:jdbcUrl里面加上serverTimezone参数。
<property name="jdbcUrl"
value="jdbc:mysql://localhost:3306/spring4?
useSSL=false&
serverTimezone=UTC"/>