📜  在Java中建立 JDBC 连接(1)

📅  最后修改于: 2023-12-03 15:37:36.138000             🧑  作者: Mango

在Java中建立 JDBC 连接

JDBC(Java Database Connectivity)是 Java 语言中用于处理关系型数据库的 API(应用程序接口)。通过 JDBC,我们可以实现 Java 应用程序与各种数据库的交互。

建立 JDBC 连接的过程和流程大致如下:

  1. 加载 JDBC 驱动程序
  2. 创建数据库连接
  3. 创建 Statement 对象
  4. 执行 SQL 语句
  5. 处理结果集
  6. 关闭连接
加载 JDBC 驱动程序

在使用 JDBC 前,需要将相应的驱动程序加载到内存中。通常,这是通过 Class.forName() 方法来实现的。对于大多数数据库来说,JDBC 驱动程序都是一个 JAR 文件,可以将它们放在应用程序的类路径下,然后使用 Class.forName() 方法来加载驱动程序。

// 加载 MySQL 驱动程序
Class.forName("com.mysql.jdbc.Driver");
创建数据库连接

要连接到一个数据库,需要提供连接 URL、用户名和密码等信息。连接 URL 的格式不同于各种数据库类型。

String url = "jdbc:mysql://localhost:3306/mydatabase";
String user = "root";
String password = "password";

try (Connection conn = DriverManager.getConnection(url, user, password)) {
    // ...
} catch (SQLException e) {
    e.printStackTrace();
}

在这个例子中,我们使用了 try-with-resources 语法,来确保 Connection 对象能在使用完后被关闭。如果没有这段语法,你需要在 finally 块中手动关闭 Connection 对象。

创建 Statement 对象

一旦连接成功,我们就可以创建 Statement 对象,用于将 SQL 语句提交给数据库执行。

try (Connection conn = DriverManager.getConnection(url, user, password)) {
    Statement stmt = conn.createStatement();
    // ...
} catch (SQLException e) {
    e.printStackTrace();
}

可以通过 Statement 对象的 execute() 方法来执行 SQL 语句。executeUpdate() 方法用于执行 INSERT、UPDATE 或 DELETE 语句,返回受影响的行数;executeQuery() 方法用于执行 SELECT 语句,返回一个 ResultSet 对象,其中包含了查询结果的数据。

try (Connection conn = DriverManager.getConnection(url, user, password)) {
    Statement stmt = conn.createStatement();

    // 执行 SELECT 语句
    ResultSet rs = stmt.executeQuery("SELECT * FROM customers");

    // 处理结果集
    while (rs.next()) {
        int id = rs.getInt("id");
        String name = rs.getString("name");
        System.out.printf("id=%d, name=%s\n", id, name);
    }
} catch (SQLException e) {
    e.printStackTrace();
}
处理结果集

ResultSet 对象中包含了查询结果的数据,我们可以使用各种方法来获取其中的值。

ResultSet rs = stmt.executeQuery("SELECT * FROM customers WHERE age > 18");

// 处理结果集
while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    int age = rs.getInt("age");
    System.out.printf("id=%d, name=%s, age=%d\n", id, name, age);
}
关闭连接

无论连接失败或成功,都需要在使用后关闭数据库连接,释放资源。

try (Connection conn = DriverManager.getConnection(url, user, password)) {
    Statement stmt = conn.createStatement();

    ResultSet rs = stmt.executeQuery("SELECT * FROM customers");

    // 处理结果集

    rs.close();
    stmt.close();
} catch (SQLException e) {
    e.printStackTrace();
}

在这个例子中,我们手动关闭了 ResultSet 和 Statement 对象,因为 JDBC 对象没有被垃圾回收机制自动释放。通常情况下,如果使用 try-with-resources 语法创建 JDBC 对象,那么这些对象会在使用完后自动关闭。

总结

以上就是建立 JDBC 连接的过程和流程。要注意一些细节问题,比如数据库连接字符串、JDBC 驱动程序类名、SQL 语句的执行方式,以及如何使用 ResultSet 对象来处理查询结果等。虽然 JDBC 略显繁琐,但是它仍然是与关系型数据库交互的必备技能。