eclipse连接8.0.11版mysql
eclipse连接mysql
我使用的是8.0.11版的mysql,安装教程可参考文档:http://www.cnblogs.com/xiongzaiqiren/p/8970203.html
对于eclipse连接mysql,从mysql6以后的连接方式就有一些不同了。笔者一开始使用的是mysql5.1.39版本的注册驱动而数据库确是8.0.11版本,结果出现了许多问题,通过不断的查询资料得以解决,在这里分享一些经验。
关于注册驱动,因为注册驱动在不断更新,所有最好下载对应版本或者更高版本的注册驱动,不然可能会出现注册驱动版本过低的情况。在这里我使用的是8.0.15版本的注册驱动,可从https://dev.mysql.com/downloads/connector/j/ 下载,如下图:
从mysql6以后jdbc驱动程序所在包由"com.mysql.jdbc.Driver"改为"com.mysql.cj.jdbc.Driver"。
即:Class.forName("com.mysql.cj.jdbc.Driver");
对于高版本的mysql需要在url中指定是否使用SSL协议,否则会出现警告。同时在url中必须设置时差,否则会出现异常。
即:DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone = GMT","root", "root");
一个简单的JDBC工具类如下:
package JDBCUtils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class JDBCUtils_V1 {
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone = GMT","root", "root");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public static void release(Connection conn,PreparedStatement pstmt,ResultSet rs) {
if(rs != null) {
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if(pstmt != null) {
try {
pstmt.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if(conn != null) {
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}