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/ 下载,如下图:
eclipse连接8.0.11版mysql

    从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();
			}
		}
	}
}