JDBC-MySql基礎操作詳解

KyshagHK發表於2020-09-28

如何使用IJ idea進行一些JDBC的基礎操作呢?對此我總結了一下。

一:步驟

1,匯入驅動jar包。
2,註冊驅動。
3,獲取資料庫連線物件 Connection。
4,定義sql
5,獲取執行sql語句的物件Statement。
6,執行sql,接收返回結果
7,處理結果。
8,釋放資源。

那麼一開始,我們需要建立一個專案,這個建立專案就不用詳細說了。在建立完專案之後。我們需要匯入一個jar包,我用的是 mysql-connector-java-8.0.16這個版本的jar包,在專案中新建一個資料夾,然後找到你下載的jar包所在的資料夾,最後再匯入一下就ok了。 注意:當你新建完資料夾並且把jar包匯入這個資料夾之後,別忘了右鍵這個資料夾, 點選Add As Library 這個選項。

第二步開始註冊驅動:

Class.forName("com.mysql.jdbc.Driver");

如果報錯的話, 那麼寫成

Class.forName("com.mysql.cj.jdbc.Driver");

第三步獲取資料庫連線物件:

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/xxxxxxx?serverTimezone=UTC", "xxxx", "xxxxxxxx");

注意 ,這裡第一個xxxxxx是你的表的名字, 第二個xxxx是你的使用者名稱root, 第三個是你的密碼。

第四部開始定義sql語句

String sql = "update departments set xxxxxx where xxxxxx";

注意,這裡的xxxx根據你自己的資料庫的元素所確定。

第五步,獲取執行sql的物件

Statement stmt = con.createStatement();

第六步, 執行sql

int count = stmt.executeUpdate(sql);

最後幾步:輸出和釋放資源

System.out.println(count);
        stmt.close();
        con.close();

完整程式碼;

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

/**
 * 使用JDBC連線MySQL資料庫
 *
 * @author lloyd
 */
public class JDBC {
    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/myemployees?serverTimezone=UTC", "root", "xiaominghaotu305");
        String sql = "update departments set manager_id = 20 where department_id = 30";
        Statement stmt = con.createStatement();
        int count = stmt.executeUpdate(sql);
        System.out.println(count);
        stmt.close();
        con.close();
    }
}

剛剛在java中連線Mysql資料庫的嘗試中,程式報出瞭如下的錯誤:

Exception in thread “main” java.sql.SQLException: The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
在這裡插入圖片描述

仔細閱讀,發現是與時間設定相關,仔細研究後發現,是因為新版的Mysql中的時區預設設定與本地時區之間是不同的,因此會報錯。

由此,解決方法即為修改時區設定即可,可以在連線資料庫的url的最後新增這樣一段程式碼?serverTimezone=UTC,就可以解決問題了。

如,我原先的程式碼為:

Connection connection = DriverManager.getConnection(“jdbc:mysql://localhost/javabook”, “xxx”, “xxxx”);
System.out.println(“Database connected!”);
修改後為:

Connection connection = DriverManager.getConnection(“jdbc:mysql://localhost/javabook?serverTimezone=UTC”, “lenfranky”, “tiger”);
System.out.println(“Database connected!”);
執行結果:

Database connected!

相關文章