天天看點

JDBC連接配接Mysql8.0注意事項.(ClassNotFoundException,SQLException)一、配置檔案方面二、代碼方面三、JDBC連接配接Mysql8.0資料庫Demo

JDBC連接配接Mysql8.0注意事項.(ClassNotFoundException,SQLException)

  • 一、配置檔案方面
    • 1.首先确定項目内是否已經導入mysql的jar包。
    • 2.注意:當我們的項目需要使用tomcat伺服器啟動時,還必須将對應jar包加到在tomcat伺服器的lib檔案夾下。
  • 二、代碼方面
    • 1.Class.forName()導緻的ClassNotFoundException問題
    • 2.mysql8.0版本所帶來的其他問題(SQLException)。
      • 問題1:SSL連接配接
      • 問題2:CST(時區)
  • 三、JDBC連接配接Mysql8.0資料庫Demo

一、配置檔案方面

1.首先确定項目内是否已經導入mysql的jar包。

(1)右鍵項目–>Build Path–>Configure Build Path

JDBC連接配接Mysql8.0注意事項.(ClassNotFoundException,SQLException)一、配置檔案方面二、代碼方面三、JDBC連接配接Mysql8.0資料庫Demo

(2)Libraries–>Add External JARs–>找到本地存儲的jar包–>打開–>Apply and Close

JDBC連接配接Mysql8.0注意事項.(ClassNotFoundException,SQLException)一、配置檔案方面二、代碼方面三、JDBC連接配接Mysql8.0資料庫Demo

2.注意:當我們的項目需要使用tomcat伺服器啟動時,還必須将對應jar包加到在tomcat伺服器的lib檔案夾下。

找到自己本地的tomcat伺服器的lib檔案夾,并将mysql的jar包粘貼進去

JDBC連接配接Mysql8.0注意事項.(ClassNotFoundException,SQLException)一、配置檔案方面二、代碼方面三、JDBC連接配接Mysql8.0資料庫Demo

二、代碼方面

1.Class.forName()導緻的ClassNotFoundException問題

注意,當我們mysql是8.0版本時,驅動與舊版本不同。Class.forName()的參數應該不再是com.mysql.jdbc.Driver,而是改為com.mysql.cj.jdbc.Driver,代碼如下:

//配置驅動資訊
String driver = "com.mysql.cj.jdbc.Driver";
//加載驅動
Class.forName(driver);
           

以上内容即可解決mysql8版本的ClassNotFoundException問題。

2.mysql8.0版本所帶來的其他問題(SQLException)。

問題1:SSL連接配接

mysql8.0是不需要建立SSL連接配接的,我們需要顯式關閉(useSSL=false),若不顯式關閉将會出現紅色的warn提示,但通常不會導緻程式停止運作。

問題2:CST(時區)

我們還必須要設定CST(時區)(serverTimezone=GMT%2B8)。該屬性若不設定,代碼很大機率将會産生SQLException。設定以上兩個屬性的代碼如下:

//配置資料庫資訊
String url = "jdbc:mysql://localhost:3306/jspdemo?&useSSL=false&characterEncoding=utf-8&serverTimezone=GMT%2B8";
//擷取連接配接
Connection con = DriverManager.getConnection(url,"root","123456");
           

注意:上面代碼中,url中的jspdemo字段為資料庫的名字,getConnection方法中的參數root為登入資料庫的使用者名,參數123456為登入資料的密碼

三、JDBC連接配接Mysql8.0資料庫Demo

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DBTest {
	public static void main(String[] args) {
		//配置驅動資訊
		String driver = "com.mysql.cj.jdbc.Driver";
		//配置資料庫資訊
		String url = "jdbc:mysql://localhost:3306/jspdemo?"
				+ "&useSSL=false&characterEncoding=utf-8&serverTimezone=GMT%2B8";
		try {
			//1.加載驅動
			Class.forName(driver);
			//2.資料庫連接配接
			Connection con = DriverManager.getConnection(url,"root","123456");
			//3.擷取連接配接狀态
			Statement sts = con.createStatement();
			//4.執行SQL語句
			ResultSet rs = sts.executeQuery("select password from user where username = 'zfc'");
			//5.周遊結果集
			while(rs.next()) {
				if("123456".equals(rs.getString(1))) {
					System.out.println("存在此使用者");
				}
			}
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}