PostgreSQL Java 教程: 从 PostgreSQL 表中删除数据

八月 9, 2023

摘要:在本教程中,您将学习如何使用 JDBC 从 PostgreSQL 数据库的表中删除数据。

要从 Java 程序中删除数据,请按照下列步骤操作:

  1. 建立数据库连接。
  2. 创建一个PreparedStatement对象。
  3. 执行 DELETE 语句
  4. 关闭数据库连接。

查看如何连接到 PostgreSQL 数据库,以了解有关如何建立数据库连接的更多信息。

我们将使用示例数据库中的actor表进行演示。下面的程序演示了如何删除表中的一行。

package net.rockdata.tutorial;

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

/**
 *
 * @author rockdata.net
 */
public class Main {

    private final String url = "jdbc:postgresql://localhost/dvdrental";
    private final String user = "postgres";
    private final String password = "postgres";

    /**
     * Connect to the PostgreSQL database
     *
     * @return a Connection object
     */
    public Connection connect() throws SQLException {
        return DriverManager.getConnection(url, user, password);
    }

    /**
     * Delete actors by id
     *
     * @param id
     * @return
     */
    public int deleteActor(int id) {
        String SQL = "DELETE FROM actor WHERE actor_id = ?";

        int affectedrows = 0;

        try (Connection conn = connect();
                PreparedStatement pstmt = conn.prepareStatement(SQL)) {

            pstmt.setInt(1, id);

            affectedrows = pstmt.executeUpdate();

        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
        }
        return affectedrows;
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Main main = new Main();
        main.deleteActor(214);

    }
}

怎么运行的。

connect()方法建立与 dvdrental 示例数据库的数据库连接。它返回一个Connection对象。

deleteActor()方法中:

  • 首先,准备一条DELETE语句,从actor表中删除由其 id 指定的行。我们使用问号 (?) 作为占位符。
  • 接下来,建立数据库连接并在 try-with-resources 语句中创建一个PreparedStatement对象。
  • 然后,通过调用setInt()方法提供 id 值来代替问号占位符 (?) 。
  • 之后,通过调用executeUpdate()方法来执行UPDATE语句。
  • 最后,返回受影响的行数。

在主方法中,我们调用deleteActor()删除 id 为 214 的演员。

在运行程序之前,我们先检查一下actor表,以验证 id 为 214 的演员是否存在。

SELECT
	actor_id,
	first_name,
	last_name
FROM
	actor
WHERE
	actor_id = 214;

PostgreSQL JDBC Delete Example

现在,我们运行删除程序。

postgresql jdbc delete example

如果我们再次检查actor表,id 为 214 的行已不存在。这意味着我们已经成功删除了actor表中 id 为 214 的演员。

在本教程中,我们逐步向您展示了如何使用 JDBC 从表中删除数据。