public class JdbcTestUtils
extends java.lang.Object
JdbcTestUtils
is a collection of JDBC related utility functions
intended to simplify standard database testing scenarios.JdbcTemplate
,
ScriptUtils
,
ResourceDatabasePopulator
,
DatabasePopulatorUtils
Constructor and Description |
---|
JdbcTestUtils() |
Modifier and Type | Method and Description |
---|---|
static int |
countRowsInTable(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate,
java.lang.String tableName)
Count the rows in the given table.
|
static int |
countRowsInTableWhere(org.springframework.jdbc.core.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(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate,
java.lang.String... tableNames)
Delete all rows from the specified tables.
|
static int |
deleteFromTableWhere(org.springframework.jdbc.core.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(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate,
java.lang.String... tableNames)
Drop the specified tables.
|
public static int countRowsInTable(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, java.lang.String tableName)
jdbcTemplate
- the JdbcTemplate with which to perform JDBC operationstableName
- name of the table to count rows inpublic static int countRowsInTableWhere(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, java.lang.String tableName, java.lang.String whereClause)
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"
.
jdbcTemplate
- the JdbcTemplate with which to perform JDBC operationstableName
- the name of the table to count rows inwhereClause
- the WHERE
clause to append to the queryWHERE
clausepublic static int deleteFromTables(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, java.lang.String... tableNames)
jdbcTemplate
- the JdbcTemplate with which to perform JDBC operationstableNames
- the names of the tables to delete frompublic static int deleteFromTableWhere(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, java.lang.String tableName, java.lang.String whereClause, java.lang.Object... args)
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.
jdbcTemplate
- the JdbcTemplate with which to perform JDBC operationstableName
- the name of the table to delete rows fromwhereClause
- the WHERE
clause to append to the queryargs
- 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.public static void dropTables(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, java.lang.String... tableNames)
jdbcTemplate
- the JdbcTemplate with which to perform JDBC operationstableNames
- the names of the tables to drop