Package org.springframework.jdbc.datasource.init

# Class ScriptUtils

java.lang.Object
org.springframework.jdbc.datasource.init.ScriptUtils

public abstract class ScriptUtils extends Object
Generic utility methods for working with SQL scripts in conjunction with JDBC.

Mainly for internal use within the framework.

Since:
  4.0.3
Author:
  Thomas Risberg, Sam Brannen, Juergen Hoeller, Keith Donald, Dave Syer, Chris Beams, Oliver Gierke, Chris Baldwin, Nicolas Debeissat, Phillip Webb
See Also:
  - `org.springframework.r2dbc.connection.init.ScriptUtils`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`DEFAULT_BLOCK_COMMENT_END_DELIMITER`
Default end delimiter for block comments within SQL scripts: `"*/"`.
`static final String`
`DEFAULT_BLOCK_COMMENT_START_DELIMITER`
Default start delimiter for block comments within SQL scripts: `"/*"`.
`static final String`
`DEFAULT_COMMENT_PREFIX`
Default prefix for single-line comments within SQL scripts: `"--"`.
`static final String[]`
`DEFAULT_COMMENT_PREFIXES`
Default prefixes for single-line comments within SQL scripts: `["--"]`.
`static final String`
`DEFAULT_STATEMENT_SEPARATOR`
Default statement separator within SQL scripts: `";"`.
`static final String`
`EOF_STATEMENT_SEPARATOR`
End of file (EOF) SQL statement separator: `"^^^ END OF SCRIPT ^^^"`.
`static final String`
`FALLBACK_STATEMENT_SEPARATOR`
Fallback statement separator within SQL scripts: `"\n"`.

## Constructor Summary

Constructors
Constructor
Description
`ScriptUtils()`

## Method Summary

Modifier and Type
Method
Description
`static void`
`executeSqlScript(Connection connection, org.springframework.core.io.Resource resource)`
Execute the given SQL script using default settings for statement separators, comment delimiters, and exception handling flags.
`static void`
`executeSqlScript(Connection connection, org.springframework.core.io.support.EncodedResource resource)`
Execute the given SQL script using default settings for statement separators, comment delimiters, and exception handling flags.
`static void`
`executeSqlScript(Connection connection, org.springframework.core.io.support.EncodedResource resource, boolean continueOnError, boolean ignoreFailedDrops, String[] commentPrefixes, String separator, String blockCommentStartDelimiter, String blockCommentEndDelimiter)`
Execute the given SQL script.
`static void`
`executeSqlScript(Connection connection, org.springframework.core.io.support.EncodedResource resource, boolean continueOnError, boolean ignoreFailedDrops, String commentPrefix, String separator, String blockCommentStartDelimiter, String blockCommentEndDelimiter)`
Execute the given SQL script.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### DEFAULT_STATEMENT_SEPARATOR

public static final String DEFAULT_STATEMENT_SEPARATOR
Default statement separator within SQL scripts: `";"`.

See Also:
  - Constant Field Values

### FALLBACK_STATEMENT_SEPARATOR

public static final String FALLBACK_STATEMENT_SEPARATOR
Fallback statement separator within SQL scripts: `"\n"`.

Used if neither a custom separator nor the `DEFAULT_STATEMENT_SEPARATOR` is present in a given script.

See Also:
  - Constant Field Values

### EOF_STATEMENT_SEPARATOR

public static final String EOF_STATEMENT_SEPARATOR
End of file (EOF) SQL statement separator: `"^^^ END OF SCRIPT ^^^"`.

This value may be supplied as the `separator` to `executeSqlScript(Connection, EncodedResource, boolean, boolean, String, String, String, String)` to denote that an SQL script contains a single statement (potentially spanning multiple lines) with no explicit statement separator. Note that such a script should not actually contain this value; it is merely a virtual statement separator.

See Also:
  - Constant Field Values

### DEFAULT_COMMENT_PREFIX

public static final String DEFAULT_COMMENT_PREFIX
Default prefix for single-line comments within SQL scripts: `"--"`.

See Also:
  - Constant Field Values

### DEFAULT_COMMENT_PREFIXES

public static final String[] DEFAULT_COMMENT_PREFIXES
Default prefixes for single-line comments within SQL scripts: `["--"]`.

Since:
  5.2

### DEFAULT_BLOCK_COMMENT_START_DELIMITER

public static final String DEFAULT_BLOCK_COMMENT_START_DELIMITER
Default start delimiter for block comments within SQL scripts: `"/*"`.

See Also:
  - Constant Field Values

### DEFAULT_BLOCK_COMMENT_END_DELIMITER

public static final String DEFAULT_BLOCK_COMMENT_END_DELIMITER
Default end delimiter for block comments within SQL scripts: `"*/"`.

See Also:
  - Constant Field Values

## Constructor Details

### ScriptUtils

public ScriptUtils()

## Method Details

### executeSqlScript

public static void executeSqlScript(Connection connection, org.springframework.core.io.Resource resource) throws ScriptException
Execute the given SQL script using default settings for statement separators, comment delimiters, and exception handling flags.

Statement separators and comments will be removed before executing individual statements within the supplied script.

Warning: this method does not release the provided `Connection`.

Parameters:
  `connection` - the JDBC connection to use to execute the script; already configured and ready to use
  `resource` - the resource to load the SQL script from; encoded with the current platform's default encoding
Throws:
  `ScriptException` - if an error occurred while executing the SQL script
See Also:
  - `executeSqlScript(Connection, EncodedResource, boolean, boolean, String, String, String, String)`
  - `DEFAULT_STATEMENT_SEPARATOR`
  - `DEFAULT_COMMENT_PREFIX`
  - `DEFAULT_BLOCK_COMMENT_START_DELIMITER`
  - `DEFAULT_BLOCK_COMMENT_END_DELIMITER`
  - `DataSourceUtils.getConnection(javax.sql.DataSource)`
  - `DataSourceUtils.releaseConnection(java.sql.Connection, javax.sql.DataSource)`

### executeSqlScript

public static void executeSqlScript(Connection connection, org.springframework.core.io.support.EncodedResource resource) throws ScriptException
Execute the given SQL script using default settings for statement separators, comment delimiters, and exception handling flags.

Statement separators and comments will be removed before executing individual statements within the supplied script.

Warning: this method does not release the provided `Connection`.

Parameters:
  `connection` - the JDBC connection to use to execute the script; already configured and ready to use
  `resource` - the resource (potentially associated with a specific encoding) to load the SQL script from
Throws:
  `ScriptException` - if an error occurred while executing the SQL script
See Also:
  - `executeSqlScript(Connection, EncodedResource, boolean, boolean, String, String, String, String)`
  - `DEFAULT_STATEMENT_SEPARATOR`
  - `DEFAULT_COMMENT_PREFIX`
  - `DEFAULT_BLOCK_COMMENT_START_DELIMITER`
  - `DEFAULT_BLOCK_COMMENT_END_DELIMITER`
  - `DataSourceUtils.getConnection(javax.sql.DataSource)`
  - `DataSourceUtils.releaseConnection(java.sql.Connection, javax.sql.DataSource)`

### executeSqlScript

public static void executeSqlScript(Connection connection, org.springframework.core.io.support.EncodedResource resource, boolean continueOnError, boolean ignoreFailedDrops, String commentPrefix, @Nullable String separator, String blockCommentStartDelimiter, String blockCommentEndDelimiter) throws ScriptException
Execute the given SQL script.

Statement separators and comments will be removed before executing individual statements within the supplied script.

Warning: this method does not release the provided `Connection`.

Parameters:
  `connection` - the JDBC connection to use to execute the script; already configured and ready to use
  `resource` - the resource (potentially associated with a specific encoding) to load the SQL script from
  `continueOnError` - whether to continue without throwing an exception in the event of an error
  `ignoreFailedDrops` - whether to continue in the event of specifically an error on a `DROP` statement
  `commentPrefix` - the prefix that identifies single-line comments in the SQL script (typically "--")
  `separator` - the script statement separator; defaults to ";" if not specified and falls back to "\n" as a last resort; may be set to "^^^ END OF SCRIPT ^^^" to signal that the script contains a single statement without a separator
  `blockCommentStartDelimiter` - the start block comment delimiter
  `blockCommentEndDelimiter` - the end block comment delimiter
Throws:
  `ScriptException` - if an error occurred while executing the SQL script
See Also:
  - `DEFAULT_STATEMENT_SEPARATOR`
  - `FALLBACK_STATEMENT_SEPARATOR`
  - `EOF_STATEMENT_SEPARATOR`
  - `DataSourceUtils.getConnection(javax.sql.DataSource)`
  - `DataSourceUtils.releaseConnection(java.sql.Connection, javax.sql.DataSource)`

### executeSqlScript

public static void executeSqlScript(Connection connection, org.springframework.core.io.support.EncodedResource resource, boolean continueOnError, boolean ignoreFailedDrops, String[] commentPrefixes, @Nullable String separator, String blockCommentStartDelimiter, String blockCommentEndDelimiter) throws ScriptException
Execute the given SQL script.

Statement separators and comments will be removed before executing individual statements within the supplied script.

Warning: this method does not release the provided `Connection`.

Parameters:
  `connection` - the JDBC connection to use to execute the script; already configured and ready to use
  `resource` - the resource (potentially associated with a specific encoding) to load the SQL script from
  `continueOnError` - whether to continue without throwing an exception in the event of an error
  `ignoreFailedDrops` - whether to continue in the event of specifically an error on a `DROP` statement
  `commentPrefixes` - the prefixes that identify single-line comments in the SQL script (typically "--")
  `separator` - the script statement separator; defaults to ";" if not specified and falls back to "\n" as a last resort; may be set to "^^^ END OF SCRIPT ^^^" to signal that the script contains a single statement without a separator
  `blockCommentStartDelimiter` - the start block comment delimiter
  `blockCommentEndDelimiter` - the end block comment delimiter
Throws:
  `ScriptException` - if an error occurred while executing the SQL script
Since:
  5.2
See Also:
  - `DEFAULT_STATEMENT_SEPARATOR`
  - `FALLBACK_STATEMENT_SEPARATOR`
  - `EOF_STATEMENT_SEPARATOR`
  - `DataSourceUtils.getConnection(javax.sql.DataSource)`
  - `DataSourceUtils.releaseConnection(java.sql.Connection, javax.sql.DataSource)`