Class JdbcTestUtils

java.lang.Object
org.springframework.test.jdbc.JdbcTestUtils

public abstract class JdbcTestUtils extends Object
JdbcTestUtils is a collection of JDBC related utility functions intended to simplify standard database testing scenarios.
Since:
2.5.4
Author:
Thomas Risberg, Sam Brannen, Juergen Hoeller, Phillip Webb, Chris Baldwin
See Also:
  • Constructor Details

    • JdbcTestUtils

      public JdbcTestUtils()
  • Method Details

    • countRowsInTable

      public static int countRowsInTable(JdbcOperations jdbcTemplate, String tableName)
      Count the rows in the given table.
      Parameters:
      jdbcTemplate - the JdbcOperations with which to perform JDBC operations
      tableName - name of the table to count rows in
      Returns:
      the number of rows in the table
    • countRowsInTable

      public static int countRowsInTable(JdbcClient jdbcClient, String tableName)
      Count the rows in the given table.
      Parameters:
      jdbcClient - the JdbcClient with which to perform JDBC operations
      tableName - name of the table to count rows in
      Returns:
      the number of rows in the table
      Since:
      6.1
    • countRowsInTableWhere

      public static int countRowsInTableWhere(JdbcOperations jdbcTemplate, String tableName, @Nullable String whereClause)
      Count the rows in the given table, using the provided WHERE clause.

      If the provided WHERE clause contains text, it will be prefixed with " WHERE " and then appended to the generated SELECT statement. For example, if the provided table name is "person" and the provided where clause is "name = 'Bob' and age > 25", the resulting SQL statement to execute will be "SELECT COUNT(0) FROM person WHERE name = 'Bob' and age > 25".

      Parameters:
      jdbcTemplate - the JdbcOperations with which to perform JDBC operations
      tableName - the name of the table to count rows in
      whereClause - the WHERE clause to append to the query
      Returns:
      the number of rows in the table that match the provided WHERE clause
    • countRowsInTableWhere

      public static int countRowsInTableWhere(JdbcClient jdbcClient, String tableName, @Nullable String whereClause)
      Count the rows in the given table, using the provided WHERE clause.

      If the provided WHERE clause contains text, it will be prefixed with " WHERE " and then appended to the generated SELECT statement. For example, if the provided table name is "person" and the provided where clause is "name = 'Bob' and age > 25", the resulting SQL statement to execute will be "SELECT COUNT(0) FROM person WHERE name = 'Bob' and age > 25".

      Parameters:
      jdbcClient - the JdbcClient with which to perform JDBC operations
      tableName - the name of the table to count rows in
      whereClause - the WHERE clause to append to the query
      Returns:
      the number of rows in the table that match the provided WHERE clause
      Since:
      6.1
    • deleteFromTables

      public static int deleteFromTables(JdbcOperations jdbcTemplate, String... tableNames)
      Delete all rows from the specified tables.
      Parameters:
      jdbcTemplate - the JdbcOperations with which to perform JDBC operations
      tableNames - the names of the tables to delete from
      Returns:
      the total number of rows deleted from all specified tables
    • deleteFromTables

      public static int deleteFromTables(JdbcClient jdbcClient, String... tableNames)
      Delete all rows from the specified tables.
      Parameters:
      jdbcClient - the JdbcClient with which to perform JDBC operations
      tableNames - the names of the tables to delete from
      Returns:
      the total number of rows deleted from all specified tables
      Since:
      6.1
    • deleteFromTableWhere

      public static int deleteFromTableWhere(JdbcOperations jdbcTemplate, String tableName, String whereClause, Object... args)
      Delete rows from the given table, using the provided WHERE clause.

      If the provided WHERE clause contains text, it will be prefixed with " WHERE " and then appended to the generated DELETE statement. For example, if the provided table name is "person" and the provided where clause is "name = 'Bob' and age > 25", the resulting SQL statement to execute will be "DELETE FROM person WHERE name = 'Bob' and age > 25".

      As an alternative to hard-coded values, the "?" placeholder can be used within the WHERE clause, binding to the given arguments.

      Parameters:
      jdbcTemplate - the JdbcOperations with which to perform JDBC operations
      tableName - the name of the table to delete rows from
      whereClause - the WHERE clause to append to the query
      args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type); may also contain SqlParameterValue objects which indicate not only the argument value but also the SQL type and optionally the scale.
      Returns:
      the number of rows deleted from the table
    • deleteFromTableWhere

      public static int deleteFromTableWhere(JdbcClient jdbcClient, String tableName, String whereClause, Object... args)
      Delete rows from the given table, using the provided WHERE clause.

      If the provided WHERE clause contains text, it will be prefixed with " WHERE " and then appended to the generated DELETE statement. For example, if the provided table name is "person" and the provided where clause is "name = 'Bob' and age > 25", the resulting SQL statement to execute will be "DELETE FROM person WHERE name = 'Bob' and age > 25".

      As an alternative to hard-coded values, the "?" placeholder can be used within the WHERE clause, binding to the given arguments.

      Parameters:
      jdbcClient - the JdbcClient with which to perform JDBC operations
      tableName - the name of the table to delete rows from
      whereClause - the WHERE clause to append to the query
      args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type); may also contain SqlParameterValue objects which indicate not only the argument value but also the SQL type and optionally the scale.
      Returns:
      the number of rows deleted from the table
      Since:
      6.1
    • dropTables

      public static void dropTables(JdbcOperations jdbcTemplate, String... tableNames)
      Drop the specified tables.
      Parameters:
      jdbcTemplate - the JdbcOperations with which to perform JDBC operations
      tableNames - the names of the tables to drop
    • dropTables

      public static void dropTables(JdbcClient jdbcClient, String... tableNames)
      Drop the specified tables.
      Parameters:
      jdbcClient - the JdbcClient with which to perform JDBC operations
      tableNames - the names of the tables to drop
      Since:
      6.1