How to truncate a Postgresql's table from JDBC

java, jdbc, postgresql

Solution

After the truncate, I need to commit:

try (Connection connection = getConnection();
     Statement statement = connection.createStatement()) {
  int result = statement.executeUpdate("TRUNCATE " + tableName);
  connection.commit();
  return result;
}

From the documentation:

TRUNCATE is transaction-safe with respect to the data in the tables: the truncation will be safely rolled back if the surrounding transaction does not commit.

Problem

I have a Postgresql database and I want to truncate some tables using JDBC. How do I do that? This is what I tried, but none worked... without even any error being reported: Using `CallableStatement`. ``` try (Connection connection = getConnection(); CallableStatement statement = connection.prepareCall("TRUNCATE " + tableName)) { return statement.execute(); } ``` Using `Statement`. ``` try (Connection connection = getConnection(); Statement statement = connection.createStatement()) { return statement.execute("TRUNCATE " + tableName); } ``` Using `PreparedStatement`. ``` try (Connection connection = getConnection(); PreparedStatement statement = connection.prepareStatement("TRUNCATE " + tableName)) { return statement.execute(); } ```

Original source