public abstract class

AbstractTransactionalJUnit4SpringContextTests

extends AbstractJUnit4SpringContextTests
java.lang.Object
   ↳ org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests
     ↳ org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests

Class Overview

Abstract transactional extension of AbstractJUnit4SpringContextTests which adds convenience functionality for JDBC access. Expects a DataSource bean and a PlatformTransactionManager bean to be defined in the Spring application context.

This class exposes a SimpleJdbcTemplate and provides an easy way to count the number of rows in a table , delete from the database , and execute SQL scripts within a transaction.

Concrete subclasses must fulfill the same requirements outlined in AbstractJUnit4SpringContextTests.

Note: this class serves only as a convenience for extension. If you do not wish for your test classes to be tied to a Spring-specific class hierarchy, you may configure your own custom test classes by using SpringJUnit4ClassRunner, @ContextConfiguration, @TestExecutionListeners, @Transactional, etc.

Summary

Fields
protected SimpleJdbcTemplate simpleJdbcTemplate The SimpleJdbcTemplate that this base class manages, available to subclasses.
[Expand]
Inherited Fields
From class org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests
Public Constructors
AbstractTransactionalJUnit4SpringContextTests()
Public Methods
void setDataSource(DataSource dataSource)
Set the DataSource, typically provided via Dependency Injection.
void setSqlScriptEncoding(String sqlScriptEncoding)
Specify the encoding for SQL scripts, if different from the platform encoding.
Protected Methods
int countRowsInTable(String tableName)
Count the rows in the given table.
int deleteFromTables(String... names)
Convenience method for deleting all rows from the specified tables.
void executeSqlScript(String sqlResourcePath, boolean continueOnError)
Execute the given SQL script.
[Expand]
Inherited Methods
From class org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests
From class java.lang.Object
From interface org.springframework.context.ApplicationContextAware

Fields

protected SimpleJdbcTemplate simpleJdbcTemplate

The SimpleJdbcTemplate that this base class manages, available to subclasses.

Public Constructors

public AbstractTransactionalJUnit4SpringContextTests ()

Public Methods

public void setDataSource (DataSource dataSource)

Set the DataSource, typically provided via Dependency Injection.

public void setSqlScriptEncoding (String sqlScriptEncoding)

Specify the encoding for SQL scripts, if different from the platform encoding.

Protected Methods

protected int countRowsInTable (String tableName)

Count the rows in the given table.

Parameters
tableName table name to count rows in
Returns
  • the number of rows in the table

protected int deleteFromTables (String... names)

Convenience method for deleting all rows from the specified tables. Use with caution outside of a transaction!

Parameters
names the names of the tables from which to delete
Returns
  • the total number of rows deleted from all specified tables

protected void executeSqlScript (String sqlResourcePath, boolean continueOnError)

Execute the given SQL script. Use with caution outside of a transaction!

The script will normally be loaded by classpath. There should be one statement per line. Any semicolons will be removed. Do not use this method to execute DDL if you expect rollback.

Parameters
sqlResourcePath the Spring resource path for the SQL script
continueOnError whether or not to continue without throwing an exception in the event of an error
Throws
DataAccessException if there is an error executing a statement and continueOnError was false