行家
最重要的細節是 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 |
GO TO FULL VERSION