解决jdbc驱动报错问题-myeclipse

今天完成连接MySQL时遇到一个报错

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/mysql/cj/jdbc/Driver : Unsupported major.minor version 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
	at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
	at connection.a.testCon(a.java:15)
	at connection.a.main(a.java:29)

解决jdbc驱动报错问题-myeclipse_第1张图片
我用的myeclipse8.5
要解决这个报错 首先cmd (建议管理员身份运行)用java -version 和javac -version 查看jdk的版本
解决jdbc驱动报错问题-myeclipse_第2张图片
这里我发现我的是jdk1.8,而我myeclipse的是1.6
解决jdbc驱动报错问题-myeclipse_第3张图片
既然有jdk1.8,那就只需要导入就可以了
首先查看jdk1.8的位置,可以在设置环境变量里面看
解决jdbc驱动报错问题-myeclipse_第4张图片
点window->perferences解决jdbc驱动报错问题-myeclipse_第5张图片

java->installed jres->add

解决jdbc驱动报错问题-myeclipse_第6张图片
点next
解决jdbc驱动报错问题-myeclipse_第7张图片
找到jdk的位置,然后finish
解决jdbc驱动报错问题-myeclipse_第8张图片
安装之后不会马上改变,这个是在下此创建Java工程的时候改变的,需要注意的是这个要在创建的时候自行选择
解决jdbc驱动报错问题-myeclipse_第9张图片
然后就欧克了
解决jdbc驱动报错问题-myeclipse_第10张图片
还有一个需要注意的是,可能仍然会报这样的错

解决jdbc驱动报错问题-myeclipse_第11张图片

Exception in thread "main" java.sql.SQLException: The server time zone value '?й???????' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property) to use a more specifc time zone value if you want to utilize time zone support.
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76)
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836)
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456)
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197)
	at demo01.main(demo01.java:27)
Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value '?й???????' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property) to use a more specifc time zone value if you want to utilize time zone support.
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
	at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:85)
	at com.mysql.cj.util.TimeUtil.getCanonicalTimezone(TimeUtil.java:132)
	at com.mysql.cj.protocol.a.NativeProtocol.configureTimezone(NativeProtocol.java:2120)
	at com.mysql.cj.protocol.a.NativeProtocol.initServerSession(NativeProtocol.java:2143)
	at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1310)
	at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:967)
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:826)
	... 4 more

只需要在String url = "jdbc:mysql://localhost:3306/book";后面加上?serverTimezone=GMT%2B8
String url = "jdbc:mysql://localhost:3306/book?serverTimezone=GMT%2B8";就可以完美解决了
2020.0605

你可能感兴趣的:(笔记)