行家

最重要的細節是 MySQL 服務器本身的 JDBC 驅動程序庫。它只是不會出現在您的計算機上,因此您需要將其添加到那裡。

如果您正在使用 Maven,那麼您需要通過指出正確的庫來幫助他。

MySQL JDBC 驅動程序:

   	<dependency>
        	<groupId>mysql</groupId>
        	<artifactId>mysql-connector-java</artifactId>
        	<version>8.0.29</version>
    	</dependency>

只需將此代碼添加到您的pom.xml

我也會給出幾個比較流行的驅動。

PostgeSQL的 JDBC 驅動程序:

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.4.0</version>
</dependency>

Oracle的 JDBC 驅動程序:

<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>21.5.0.0</version>
</dependency>

H2的 JDBC 驅動程序:

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>2.1.214</version>
</dependency>

第一次數據庫查詢

所有必需的庫都包含在內,現在是運行您的第一個數據庫訪問程序的時候了。我們將在main()方法中編寫所有代碼。

第一階段在main()方法之前添加一些導入- 這將使您的生活更輕鬆:

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

第 2 階段。首先我們需要創建一個數據庫連接。為此,在main()方法中,編寫以下代碼:

Connection connection  = DriverManager.getConnection(
           "jdbc:mysql://localhost:3306/test",
           "login", "password");

您也可以在一行中完成 - 以您更方便的方式為準。登錄名和密碼,當然,您需要從本地 MySQL 服務器替換真實的。

第 3 階段。我們創建對數據庫的查詢。讓我們從用戶表中獲取所有用戶。然後你需要添加這行代碼:

Statement statement = connection.createStatement();
ResultSet results = statement.executeQuery("SELECT * FROM user");

那是兩條線。首先我們創建一個對象陳述,第二,我們用它來查詢數據庫。executeQuery()方法執行數據庫查詢並返回一個類型的對象結果集.

第 4 階段。顯示對像中包含的數據結果集.

結果集- 這不是一個集合,它只是被稱為那個。它存儲查詢執行的結果。這個對像有點類似於迭代器:它允許你設置/改變結果的當前行,然後你可以從這個當前行中獲取數據。將以下代碼添加到您的示例中:

while (results.next()) {
        	Integer id = results.getInt(1);
        	String name = results.getString(2);
        	System.out.println(results.getRow() + ". " + id + "\t"+ name);
}

next()方法將當前結果行更改為下一行。如果有這樣一行,則返回 true,如果沒有更多行,則返回 false。

然後從對象的當前行結果集您可以從其列中獲取數據:

  • getRow() - 返回對像中當前行的編號結果集
  • getInt(N) - 將當前行第 N 列的數據作為 int 返回
  • getString(N) - 將當前行第 N 列的數據作為字符串返回

完整的程序列表

為了盡量減少錯誤,這裡是程序的完整列表:

package org.example;

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

public class JdbcApplicatin {
    public static void main(String[] args) throws  Exception{
 	   Connection connection  = DriverManager.getConnection(
          	"jdbc:mysql://localhost:3306/test",
          	"root", "secret");

        Statement statement = connection.createStatement();
    	ResultSet results = statement.executeQuery("SELECT * FROM user");

    	while (results.next()) {
        	Integer id = results.getInt(1);
        	String name = results.getString(2);
        	System.out.println(results.getRow() + ". " + id + "\t"+ name);
    	}
    	connection.close();
    }
}

運行程序後我的屏幕輸出:

“C:\Program Files\Java\jdk-17.0.3.1\bin\java.exe...
十一 伊万諾夫伊万
2.2 彼得羅夫·尼古拉
3.3 西多羅夫·維塔利
進程結束,退出代碼為 0