Class ResourceDatabasePopulator
- All Implemented Interfaces:
DatabasePopulator
- Call
addScript(org.springframework.core.io.Resource)
to add a single SQL script location. - Call
addScripts(org.springframework.core.io.Resource...)
to add multiple SQL script locations. - Consult the setter methods in this class for further configuration options.
- Call
populate(java.sql.Connection)
orexecute(javax.sql.DataSource)
to initialize or clean up the database using the configured scripts.
- Since:
- 3.0
- Author:
- Keith Donald, Dave Syer, Juergen Hoeller, Chris Beams, Oliver Gierke, Sam Brannen, Chris Baldwin, Phillip Webb
- See Also:
-
Constructor Summary
ConstructorDescriptionConstruct a newResourceDatabasePopulator
with default settings.ResourceDatabasePopulator
(boolean continueOnError, boolean ignoreFailedDrops, String sqlScriptEncoding, Resource... scripts) Construct a newResourceDatabasePopulator
with the supplied values.ResourceDatabasePopulator
(Resource... scripts) Construct a newResourceDatabasePopulator
with default settings for the supplied scripts. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Add a script to execute to initialize or clean up the database.void
addScripts
(Resource... scripts) Add multiple scripts to execute to initialize or clean up the database.void
execute
(DataSource dataSource) Execute thisResourceDatabasePopulator
against the givenDataSource
.void
populate
(Connection connection) Populate, initialize, or clean up the database using the provided JDBC connection.void
setBlockCommentEndDelimiter
(String blockCommentEndDelimiter) Set the end delimiter that identifies block comments within the SQL scripts.void
setBlockCommentStartDelimiter
(String blockCommentStartDelimiter) Set the start delimiter that identifies block comments within the SQL scripts.void
setCommentPrefix
(String commentPrefix) Set the prefix that identifies single-line comments within the SQL scripts.void
setCommentPrefixes
(String... commentPrefixes) Set the prefixes that identify single-line comments within the SQL scripts.void
setContinueOnError
(boolean continueOnError) Flag to indicate that all failures in SQL should be logged but not cause a failure.void
setIgnoreFailedDrops
(boolean ignoreFailedDrops) Flag to indicate that a failed SQLDROP
statement can be ignored.void
setScripts
(Resource... scripts) Set the scripts to execute to initialize or clean up the database, replacing any previously added scripts.void
setSeparator
(String separator) Specify the statement separator, if a custom one.void
setSqlScriptEncoding
(String sqlScriptEncoding) Specify the encoding for the configured SQL scripts, if different from the platform encoding.
-
Constructor Details
-
ResourceDatabasePopulator
public ResourceDatabasePopulator()Construct a newResourceDatabasePopulator
with default settings.- Since:
- 4.0.3
-
ResourceDatabasePopulator
Construct a newResourceDatabasePopulator
with default settings for the supplied scripts.- Parameters:
scripts
- the scripts to execute to initialize or clean up the database (nevernull
)- Since:
- 4.0.3
-
ResourceDatabasePopulator
public ResourceDatabasePopulator(boolean continueOnError, boolean ignoreFailedDrops, @Nullable String sqlScriptEncoding, Resource... scripts) Construct a newResourceDatabasePopulator
with the supplied values.- Parameters:
continueOnError
- flag to indicate that all failures in SQL should be logged but not cause a failureignoreFailedDrops
- flag to indicate that a failed SQLDROP
statement can be ignoredsqlScriptEncoding
- the encoding for the supplied SQL scripts (may benull
or empty to indicate platform encoding)scripts
- the scripts to execute to initialize or clean up the database (nevernull
)- Since:
- 4.0.3
-
-
Method Details
-
addScript
Add a script to execute to initialize or clean up the database.- Parameters:
script
- the path to an SQL script (nevernull
)
-
addScripts
Add multiple scripts to execute to initialize or clean up the database.- Parameters:
scripts
- the scripts to execute (nevernull
)
-
setScripts
Set the scripts to execute to initialize or clean up the database, replacing any previously added scripts.- Parameters:
scripts
- the scripts to execute (nevernull
)
-
setSqlScriptEncoding
Specify the encoding for the configured SQL scripts, if different from the platform encoding.- Parameters:
sqlScriptEncoding
- the encoding used in scripts (may benull
or empty to indicate platform encoding)- See Also:
-
setSeparator
Specify the statement separator, if a custom one.Defaults to
";"
if not specified and falls back to"\n"
as a last resort; may be set toScriptUtils.EOF_STATEMENT_SEPARATOR
to signal that each script contains a single statement without a separator.- Parameters:
separator
- the script statement separator
-
setCommentPrefix
Set the prefix that identifies single-line comments within the SQL scripts.Defaults to
"--"
.- Parameters:
commentPrefix
- the prefix for single-line comments- See Also:
-
setCommentPrefixes
Set the prefixes that identify single-line comments within the SQL scripts.Defaults to
["--"]
.- Parameters:
commentPrefixes
- the prefixes for single-line comments- Since:
- 5.2
-
setBlockCommentStartDelimiter
Set the start delimiter that identifies block comments within the SQL scripts.Defaults to
"/*"
.- Parameters:
blockCommentStartDelimiter
- the start delimiter for block comments (nevernull
or empty)- Since:
- 4.0.3
- See Also:
-
setBlockCommentEndDelimiter
Set the end delimiter that identifies block comments within the SQL scripts.Defaults to
"*/"
.- Parameters:
blockCommentEndDelimiter
- the end delimiter for block comments (nevernull
or empty)- Since:
- 4.0.3
- See Also:
-
setContinueOnError
public void setContinueOnError(boolean continueOnError) Flag to indicate that all failures in SQL should be logged but not cause a failure.Defaults to
false
.- Parameters:
continueOnError
-true
if script execution should continue on error
-
setIgnoreFailedDrops
public void setIgnoreFailedDrops(boolean ignoreFailedDrops) Flag to indicate that a failed SQLDROP
statement can be ignored.This is useful for a non-embedded database whose SQL dialect does not support an
IF EXISTS
clause in aDROP
statement.The default is
false
so that if the populator runs accidentally, it will fail fast if a script starts with aDROP
statement.- Parameters:
ignoreFailedDrops
-true
if failed drop statements should be ignored
-
populate
Populate, initialize, or clean up the database using the provided JDBC connection.Warning: Concrete implementations should not close the provided
Connection
.Concrete implementations may throw an
SQLException
if an error is encountered but are strongly encouraged to throw a specificScriptException
instead. For example, Spring'sResourceDatabasePopulator
andDatabasePopulatorUtils
wrap allSQLExceptions
inScriptExceptions
.- Specified by:
populate
in interfaceDatabasePopulator
- Parameters:
connection
- the JDBC connection to use; already configured and ready to use; nevernull
- Throws:
ScriptException
- in all other error cases- See Also:
-
execute
Execute thisResourceDatabasePopulator
against the givenDataSource
.Delegates to
DatabasePopulatorUtils.execute(org.springframework.jdbc.datasource.init.DatabasePopulator, javax.sql.DataSource)
.- Parameters:
dataSource
- theDataSource
to execute against (nevernull
)- Throws:
ScriptException
- if an error occurs- Since:
- 4.1
- See Also:
-