JDBCc3p0 连接池踩坑记录

JDBCc3p0 连接池踩坑记录,第1张

JDBC / c3p0 连接池踩坑记录

记录于2021年的最后一天,这是和数据库纠缠不休的一年。
基本环境:
jdk1.8
MyEclipse CI、tomcat 9.0.48
SQL Server 18.8、MySQL 8.0.26、c3p0 9.5.5

1. 没有合适的驱动

这个问题连接以上三个的时候都碰到过。

SQL Server有点忘了,当时还没开始用IDEA,连不上貌似是因为原来的MyEclipse版本比较低,不支持jdk1.8,于是换成了现在的版本。然后又因为web版本支持的问题把tomcat从7.0换成了现在的9.0。

MySQL的jdbc jar包要和环境完全匹配,而且8.0的驱动类名是com.mysql.cj.jdbc.Driver

MySQL 8.0需要9.5.2及以上的c3p0 jar包,而且要把c3p0的配置文件放在包的同级目录下,jdbcUrl中的配置项分隔符要用&。

不小心切了中文的话,c3p0打出来是“吃p”。

2. MySQLNonTransientConnectionException和CommunicationException

它们都来自MySQL。(多得你不少

解决方法:
(1) 在进行jdbc时保持MySQL服务开启,并且登录
(2) 延长MySQL的wait_timeout和interactive_timeout,均从默认的28800改为604800
(3) 在URL后添加"?"以及连接的配置项,包括将serverTimezone设置为UTC以将连接时区改为世界标准时间,将useSSL设置为false以停用SSL,将autoReconncet设置为true以实现自动连接,即:jdbc:mysql://127.0.0.1:3306/demodb?serverTimezone=UTC&useSSL=false&autoReconncet=true

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5693419.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存