Java数据库连接问题--版本匹配

本文主要描述了在Java环境下遇到的数据库连接问题。当使用JDK7、Tomcat7和mysql-connector-java-8.0.15.jar时,出现UnsupportedClassVersionError。解决方案包括升级JDK至1.8、更换Tomcat版本为8.5,以及解决Apache Tomcat Native库的版本不兼容问题。强调开发环境中各组件版本匹配的重要性。

环境配置:MySql8.0、JDK7、Tomcat7、mysql-connector-java-8.0.15.jar

报错:

七月 28, 2019 7:33:32 下午 com.mchange.v2.c3p0.C3P0Registry banner

INFO: Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10]

Exception in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1" Exception in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2" java.lang.UnsupportedClassVersionError: com/mysql/cj/jdbc/Driver : Unsupported major.minor version 52.0 (unable to load class com.mysql.cj.jdbc.Driver)

         at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2840)

         at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1160)

         at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1668)

之前配置的JDK是1.8版本,运行没问题,后来换成1.7版本就报错了。

 

上网找了一下原因:

1. MySql8.0使用的是mysql-connector-java 6中的驱动com.mysql.cj.jdbc.Driver,与mysql-connector-java 5中的驱动com.mysql.jdbc.Driver不同;

2.JDK版本太低,之前试过JDK8能正常运行。

 

由于卸载Mysql,再重新安装太麻烦,我就把Tomcat重新安装了一遍,换成Tomcat8.5,JDK再换成之前的1.8版本。

网上也有说Mysql8可以兼容mysql-connector-java 5,但是我试过没用,换成mysql-connector-java 8才运行成功。

 

配置文件c3p0-config.xml:

<?xml version="1.0" encoding="UTF-8"?>

<c3p0-config>

         <default-config>

                   <property name="user">root</property>

                   <property name="password">123456</property>

                   <property name="driverClass">com.mysql.cj.jdbc.Driver</property>

                   <property name="jdbcUrl">jdbc:mysql://localhost:3306/mybase?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=GMT</property>

         </default-config>

</c3p0-config>

 

在Eclipse上配置Tomcat服务器:

1. Window-Preferences-Serve-Runtime Environment,Add相应的版本并添加目录。

2.在Servers中创建Tomcat服务。

3.选中项目,右键Preferences-Java Build Path,通过Add Library-Server Runtime选择相应的服务器。

 

更换JDK版本参考https://blog.youkuaiyun.com/uu_uuu/article/details/97616316

都配置好后,Run on Server,控制台显示:

七月 28, 2019 9:17:17 下午 org.apache.catalina.core.AprLifecycleListener init

严重: An incompatible version [1.1.22] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]

 

去http://archive.apache.org/dist/tomcat/tomcat-connectors/native/ 下载对应版本的库tomcat-native-1.2.14-win32-bin.zip就行,解压文件,然后将bin目录下的tcnative-1.dll放到C:\windows\system32下面,如果需要64位的,就到bin目录下的x64中拷贝tcnative-1.dll。

重起tomcat。

 

着重强调:开发环境中的各个工具版本匹配很重要,我的环境是这些年陆陆续续配好的,所以没考虑过版本兼容的问题,一开发全用上就出问题了。这里总结一下,Tomcat8及以上,要用JDK8及以上版本,Mysql8.0,Tomcat7及以下,用JDK7及以下版本,Mysql5.x。其他版本没有亲测,可以参考其他人的总结。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值