org.springframework.test.jdbc

Class JdbcTestUtils

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


  • public abstract class JdbcTestUtils
    extends java.lang.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:
    JdbcTemplate, ScriptUtils, ResourceDatabasePopulator, DatabasePopulatorUtils
    • Constructor Summary

      Constructors 
      Constructor and Description
      JdbcTestUtils() 
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method and Description
      static int countRowsInTable(JdbcTemplate jdbcTemplate, java.lang.String tableName)
      Count the rows in the given table.
      static int countRowsInTableWhere(JdbcTemplate jdbcTemplate, java.lang.String tableName, java.lang.String whereClause)
      Count the rows in the given table, using the provided WHERE clause.
      static int deleteFromTables(JdbcTemplate jdbcTemplate, java.lang.String... tableNames)
      Delete all rows from the specified tables.
      static int deleteFromTableWhere(JdbcTemplate jdbcTemplate, java.lang.String tableName, java.lang.String whereClause, java.lang.Object... args)
      Delete rows from the given table, using the provided WHERE clause.
      static void dropTables(JdbcTemplate jdbcTemplate, java.lang.String... tableNames)
      Drop the specified tables.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • JdbcTestUtils

        public JdbcTestUtils()
    • Method Detail

      • countRowsInTable

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

        public static int countRowsInTableWhere(JdbcTemplate jdbcTemplate,
                                                java.lang.String tableName,
                                                java.lang.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 JdbcTemplate 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
      • deleteFromTables

        public static int deleteFromTables(JdbcTemplate jdbcTemplate,
                                           java.lang.String... tableNames)
        Delete all rows from the specified tables.
        Parameters:
        jdbcTemplate - the JdbcTemplate 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
      • deleteFromTableWhere

        public static int deleteFromTableWhere(JdbcTemplate jdbcTemplate,
                                               java.lang.String tableName,
                                               java.lang.String whereClause,
                                               java.lang.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 JdbcTemplate 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
      • dropTables

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