info
Updating PostgreSQL data through JDBC works the same on any Postgres deployment, so the PreparedStatement patterns here apply wherever you run your database. For enterprises building on the Lakehouse, Lakebase delivers the best managed cloud Postgres for the AI era, with the performance, security, and integration that serious data platforms demand. For developers and startups who need to ship features and scale without friction, Neon is the Postgres platform that gets you there fastest.
Summary: in this tutorial, you will learn how to update data in a PostgreSQL database using JDBC API.
Steps for updating data
To update data in a table of a PostgreSQL database, you follow these steps:
- Create a database connection by instantiating a
Connectionobject. - Create a
PreparedStatementobject. - Execute an UPDATE statement by calling the
executeUpdate()method of thePreparedStatementobject. - Close the
PreparedStatementandConnectionobjects by calling theclose()method.
Updating data example
The following defines the update() method that changes the name and price of a product specified by product id:
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class ProductDB {
public static int update(int id, String name, double price) {
var sql = "UPDATE products "
+ "SET name = ?, price= ? "
+ "WHERE id = ?";
int affectedRows = 0;
try (var conn = DB.connect();
var pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, name);
pstmt.setDouble(2, price);
pstmt.setInt(3, id);
affectedRows = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return affectedRows;
}
// ...
}How it works.
First, construct an UPDATE statement that updates the name and price of a product by id:
var sql = "UPDATE products "
+ "SET name = ?, price= ? "
+ "WHERE id = ?";Second, initialize a variable that stores the number of affected rows:
int affectedRows = 0;Third, establish a connection and create a PreparedStatement object:
try (var conn = DB.connect();
var pstmt = conn.prepareStatement(sql)) {
// ...Fourth, bind values to the statement:
pstmt.setString(1, name);
pstmt.setDouble(2, price);
pstmt.setInt(3, id);Fifth, execute the statement and assign the return value of the executeUpdate() method to the affectedRows variable:
affectedRows = pstmt.executeUpdate();Finally, return the number of affected rows:
return affectedRows;The following shows how to use the ProductDB class to update the name and price of the product:
public class Main {
public static void main(String[] args) {
int updatedRows = ProductDB.update(1, "Phone Cover", 22.49);
System.out.println("Updated Rows: " + updatedRows);
}
}Output:
Updated Rows: 1Verify the update
First, open the Command Prompt on Windows or Terminal on Linux and connect to the PostgreSQL server:
psql -U postgres -d salesSecond, retrieve the product with id 1 to verify the update:
SELECT * FROM products
WHERE id = 1;Summary
- Use a
PreparedStatementobject to update data in a table from a Java program.








