Summary: in this tutorial, you will learn how to update data in a table in SQL Server from a Java program.
This tutorial begins where the Querying Data from SQL Server using the LIKE Operator tutorial left off.
Updating data
Step 1. Define a new method in the AuthorDB class that updates the data of an Author object:
public void update(Author author) throws DBException {
if (author == null) {
return;
}
var sql = "UPDATE Authors SET FirstName =?, LastName=?, BirthDate = ? WHERE AuthorID=?";
try (var statement = connection.prepareStatement(sql)) {
// Bind values to parameters
statement.setString(1, author.getFirstName());
statement.setString(2, author.getLastName());
statement.setDate(3, Date.valueOf(author.getBirthDate()));
statement.setInt(4, author.getAuthorId());
// Execute the update
statement.executeUpdate();
} catch(SQLException e) {
throw new DBException(e.getMessage());
}
}Code language: Java (java)How it works.
First, define update() method that accepts an Author object and throws a DBException if an error occurs during the update:
public void update(Author author) throws DBException {Code language: Java (java)Second, return immediately if the author object is null:
if (author == null) {
return;
}Code language: Java (java)Third, construct an UPDATE statement that updates author data based on author id:
var sql = "UPDATE Authors SET FirstName =?, LastName=?, BirthDate = ? WHERE AuthorID=?";Code language: Java (java)Fourth, create a prepared statement object:
try (var statement = connection.prepareStatement(sql)) {Code language: Java (java)Fifth, bind values to the statement:
statement.setString(1, author.getFirstName());
statement.setString(2, author.getLastName());
statement.setDate(3, Date.valueOf(author.getBirthDate()));
statement.setInt(4, author.getAuthorId());Code language: Java (java)Sixth, execute the UPDATE 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 find an author with id 1 and update his first name:
import java.sql.SQLException;
public class Main {
public static void main(String[] args) {
try (var connection = SQLServerConnection.connect()) {
var authorDB = new AuthorDB(connection);
// Find author with id 1
var author = authorDB.findById(1);
// Change the first name
author.setFirstName("Johnson");
// Update the author
authorDB.update(author);
} 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, find the author with id 1:
var author = authorDB.findById(1);Code language: Java (java)Fourth, change the first name to Johnson:
author.setFirstName("Johnson");Code language: Java (java)Fifth, apply the change to the database by calling the update() method of the AuthorDB object:
authorDB.update(author);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 3:
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 update the author’s first name:
Step 5. Rerun the query to verify the update:
SELECT * FROM Authors
WHERE AuthorId = 1;Code language: Java (java)Output:
AuthorID | FirstName | LastName | BirthDate
---------+-----------+----------+-----------
1 | Johnson | Doe | 1990-12-31
(1 row)Code language: Java (java)The output shows that the author’s first name was updated to Johnson.
Download the project source code
Download the project source code
Summary
- Call the
executeUpdate()method of thePreparedStatementobject to execute anUPDATEstatement to update data in a table from a Java program.