行家
最重要的细节是 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