Java SQL Server: Deleting Data

Summary: in this tutorial, you will learn how to delete a row from a table in a Java program.

This tutorial begins where the Updating Data in SQL Server from Java tutorial left off.

Deleting data #

Step 1. Define a new method in the AuthorDB class that deletes an author by ID:

public void delete(int authorId) throws DBException {
  var sql = "DELETE FROM authors WHERE AuthorID=?";

  try (var statement = connection.prepareStatement(sql)) {
    // Bind values to parameters
    statement.setInt(1, authorId);

    // Execute the delete statement
    statement.executeUpdate();
  } catch(SQLException e) {
    throw new DBException(e.getMessage());
  }
}Code language: Java (java)

How it works.

First, define delete() method that accepts an author id and throws a DBException if an error occurs when deleting the author:

public void delete(int authorId) throws DBException {Code language: Java (java)

Second, construct an DELETE statement that deletes a row from the Authors table based on an author id:

var sql = "DELETE FROM authors WHERE AuthorID=?";Code language: Java (java)

Third, create a prepared statement object:

try (var statement = connection.prepareStatement(sql)) {Code language: Java (java)

Fourth, bind the authorId value to the parameter of the statement:

statement.setInt(1, authorId);Code language: Java (java)

Fifth, execute the DELETE statement by calling the executeUpdate() method of the PreparedStatement object:

statement.executeUpdate();Code language: Java (java)

Finally, throw a new DBException if an error occurs during the update:

} catch(SQLException e) {
  throw new DBException(e.getMessage());
}Code language: Java (java)

Step 2. Modify the main() method of the Main class to delete an author with id 1:

import java.sql.SQLException;

public class Main {
    public static void main(String[] args) {
        try (var connection = SQLServerConnection.connect()) {
            var authorDB = new AuthorDB(connection);
            authorDB.delete(1);
        } catch (SQLException | DBException e) {
            System.err.println(e.getMessage());
        }
    }
}Code language: Java (java)

How it works.

First, connect to the SQL Server:

try (var connection = SQLServerConnection.connect()) {Code language: Java (java)

Second, create an AuthorDB object:

var authorDB = new AuthorDB(connection);Code language: Java (java)

Third, delete the author with the id 1:

authorDB.delete(1);Code language: Java (java)

Finally, display an error if the author does not exist or the update fails:

} catch(SQLException | DBException e) {
  System.err.println(e.getMessage());
}Code language: Java (java)

Step 3. Launch the SQL Server Management Studio, connect to the SQL Server, and execute the following query to retrieve data of the author id 1:

SELECT * FROM Authors
WHERE AuthorId = 1;Code language: Java (java)

Output:

AuthorID | FirstName | LastName | BirthDate
---------+-----------+----------+-----------
1        | John      | Doe      | 1990-12-31
(1 row)Code language: Java (java)

Step 4. Run the Java program to delete the author with id 1.

Step 5. Rerun the query to verify the deletion:

SELECT * FROM Authors
WHERE AuthorId = 1;Code language: Java (java)

Output:

AuthorID | FirstName | LastName | BirthDate
---------+-----------+----------+-----------

(0 rows affected)Code language: Java (java)

The output shows an empty result set, meaning that the Java program has successfully deleted the author with the id 1.

Download the project source code #

Download the project source code

Summary #

  • Call the executeUpdate() method of the PreparedStatement object to execute a DELETE statement to delete a row from a table in a Java program.
Was this tutorial helpful?