Java - JDBC PostgreSQL Delete Example

In this previous tutorial, we have seen how to insert one or multiple rows into the PostgreSQL database using the JDBC API.  In this tutorial, you will learn how to delete data from a table in the PostgreSQL database using JDBC.
Check out all Java PostgreSQL examples at Java PostgreSQL Tutorial.
To delete data from a Java program, you follow these steps:
  • Establish a database connection.
  • Create a PreparedStatement object.
  • Execute a DELETE statement.
  • Close the database connection.
Check out all Java PostgreSQL examples at Java PostgreSQL Tutorial.

Technologies used

We use below technologies in this tutorial:
  • JDK - 1.8 or later
  • PostgreSQL- 42.2.9
  • IDE - Eclipse Neon
  • JDBC - 4.2

Download PostgreSQL JDBC Driver

To connect to the PostgreSQL database server from a Java program, you need to have a PostgreSQL JDBC driver. You can download the latest version of the driver on the website via the download page.
Add the PostgreSQL JDBC driver jar file to the project classpath.
For maven users:
<!-- -->
For Gradle users:
compile group: 'org.postgresql', name: 'postgresql', version: '42.2.9'

PostgreSQL Database Setup

JDBC PostgreSQL Delete Example

Here is the complete Java program to delete record from "users" table in the PostgreSQL database:
package net.javaguides.postgresql.tutorial;

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

 * Delete JDBC Example
 * @author Ramesh Fadatare
public class DeleteRecordExample {

    private static final String DELETE_USERS_SQL = "delete from users where id = ?;";

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

    public static void main(String[] argv) throws SQLException {
        DeleteRecordExample deleteStatementExample = new DeleteRecordExample();

    public void deleteRecord() throws SQLException {

        // Step 1: Establishing a Connection
        try (Connection connection = DriverManager.getConnection(url, user, password);

            // Step 2:Create a statement using connection object
            PreparedStatement preparedStatement = connection.prepareStatement(DELETE_USERS_SQL);) {
            preparedStatement.setInt(1, 1);

            // Step 3: Execute the query or update query
            int result = preparedStatement.executeUpdate();
            System.out.println("Number of records affected :: " + result);
        } catch (SQLException e) {

            // print SQL exception information

        // Step 4: try-with-resource statement will auto close the connection.

    public static void printSQLException(SQLException ex) {
        for (Throwable e: ex) {
            if (e instanceof SQLException) {
                System.err.println("SQLState: " + ((SQLException) e).getSQLState());
                System.err.println("Error Code: " + ((SQLException) e).getErrorCode());
                System.err.println("Message: " + e.getMessage());
                Throwable t = ex.getCause();
                while (t != null) {
                    System.out.println("Cause: " + t);
                    t = t.getCause();
In this tutorial, we have shown you step by step how to delete data from a table using JDBC.
Check out all Java PostgreSQL examples at Java PostgreSQL Tutorial.