通過JDBC連接MySql 8.0 應該注意的幾個問題

1.驅動問題:
    應該使用對應的Mysql8.0的驅動,即下圖中的這個jar包,將它添加到環境變量中的CLASSPATH中,我的電腦上這個jar包在C:\Program Files (x86)\MySQL\Connector J 8.0中,但是對於eclipse或者myeclipse玩家來說這樣是無法生效的,因爲它們都不使用CLASSPATH,所以需要你進行第三方包導入。

注意:在eclipse中使用JDBC連接數據庫採用以下方式:
https://www.cnblogs.com/null-0/p/9426045.html


2.代碼中設置驅動

使用"com.mysql.cj.jdbc.Driver"而不是"com.mysql.jdbc.Driver"

3.使用DriverManager的getConnection()方法時,其中的url參數,要將useSSL設置爲false,並且將serverTimezone設置爲UTC

Connection conn = DriverManager.getConnection(
				"jdbc:mysql://127.0.0.1:3306/select_test?useSSL=false&serverTimezone=UTC"
				, "root" , "wdtk3366999.");

下面是代碼,表結構,工程目錄,運行截圖

package jdbc;
import java.sql.*;

public class ConnMysql
{
	public static void main(String[] args) throws Exception
	{
		// 1.加載驅動,使用反射的知識,現在記住這麼寫。
		Class.forName("com.mysql.cj.jdbc.Driver");
		try(
			// 2.使用DriverManager獲取數據庫連接,
			// 其中返回的Connection就代表了Java程序和數據庫的連接
			// 不同數據庫的URL寫法需要查驅動文檔知道,用戶名、密碼由DBA分配
			Connection conn = DriverManager.getConnection(
				"jdbc:mysql://127.0.0.1:3306/select_test?useSSL=false&serverTimezone=UTC"
				, "root" , "123456");
			// 3.使用Connection來創建一個Statment對象
			Statement stmt = conn.createStatement();
			// 4.執行SQL語句
			/*
			Statement有三種執行sql語句的方法:
			1 execute 可執行任何SQL語句。- 返回一個boolean值,
			  如果執行後第一個結果是ResultSet,則返回true,否則返回false
			2 executeQuery 執行Select語句 - 返回查詢到的結果集
			3 executeUpdate 用於執行DML語句。- 返回一個整數,
			  代表被SQL語句影響的記錄條數
			*/
			ResultSet rs = stmt.executeQuery("select s.* , teacher_name"
				+ " from student_table s , teacher_table t"
				+ " where t.teacher_id = s.java_teacher"))
		{
			// ResultSet有系列的getXxx(列索引 | 列名),用於獲取記錄指針
			// 指向行、特定列的值,不斷地使用next()將記錄指針下移一行,
			// 如果移動之後記錄指針依然指向有效行,則next()方法返回true。
			while(rs.next())
			{
				System.out.println(rs.getInt(1) + "\t"
					+ rs.getString(2) + "\t"
					+ rs.getString(3) + "\t"
					+ rs.getString(4));
			}
		}
	}
}

在這裏插入圖片描述
工程目錄
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章