这次新安装了一个MySQL数据库,然后navicat连接数据库一点问题没有。
但是通过Java的jdbc连接却怎么都建立不了连接。
报如下错:
网上找了很久找到了原因:
数据库用的是Mysql8版本,但工程里面mysql驱动包却是5.1.37版本。只需修改驱动包为8.0.11版本即可。
而且驱动的包也改变了,由原来的:/generatorSqlmapCustom/lib/mysql-connector-java-5.1.28-bin.jar
换成了:mysql-connector-java-8.0.11.jar
结构:
换成了:
因此Mysql8.0连接JDBC驱动需要注意以下几点:
1,驱动的类换了个名字
Class.forName("com.mysql.cj.jdbc.Driver");
加上useSSL=true或false
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useSSL=true", "root", "123456");
加上serverTimezone=GMT
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useSSL=true&serverTimezone=GMT", "root", "123456");
如果是maven引入,则需要由:
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>5.1.37version>
dependency>
改为:
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>8.0.11version>
dependency>
在mybatis逆向工程里面配置改成如下:
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/taobao" userId="root"
password="aaaaaa">
jdbcConnection>