Package liquibase.executor
Interface Executor
- All Superinterfaces:
Plugin
- All Known Implementing Classes:
AbstractExecutor
,JdbcExecutor
,LoggingExecutor
,MockExecutor
,SnowflakeJdbcExecutor
Interface for a class that is capable of executing statements/queries against a DBMS.
-
Field Summary
Fields inherited from interface liquibase.plugin.Plugin
PRIORITY_DATABASE, PRIORITY_DEFAULT, PRIORITY_NOT_APPLICABLE, PRIORITY_SPECIALIZED
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a comment to the database.void
Write methodsvoid
execute
(Change change, List<SqlVisitor> sqlVisitors) void
execute
(SqlStatement sql) void
execute
(SqlStatement sql, List<SqlVisitor> sqlVisitors) getName()
Return the name of the Executorint
Return the Executor priorityvoid
modifyChangeSet
(ChangeSet changeSet) Allow this Executor to make any needed changes to the changesetint
queryForInt
(SqlStatement sql) Executes a query that is expected to return a scalar (1 row, 1 column).int
queryForInt
(SqlStatement sql, List<SqlVisitor> sqlVisitors) Applies a number of SqlVisitors to the sql query.queryForList
(SqlStatement sql) Executes a given SQL statement and returns a List of rows.queryForList
(SqlStatement sql, Class elementType) queryForList
(SqlStatement sql, Class elementType, List<SqlVisitor> sqlVisitors) queryForList
(SqlStatement sql, List<SqlVisitor> sqlVisitors) Applies a list of SqlVisitors to the SQL query, then executes the (possibly modified) SQL query and lastly, returns the list of rows.long
queryForLong
(SqlStatement sql) Executes a query that is expected to return a scalar (1 row, 1 column).long
queryForLong
(SqlStatement sql, List<SqlVisitor> sqlVisitors) Applies a number of SqlVisitors to the sql query.<T> T
queryForObject
(SqlStatement sql, Class<T> requiredType) Execute a query that is expected to return a scalar (1 row, 1 column).<T> T
queryForObject
(SqlStatement sql, Class<T> requiredType, List<SqlVisitor> sqlVisitors) Applies a number of SqlVisitors to the sql query.void
setDatabase
(Database database) Configures the Executor for the Database to run statements/queries against.void
setResourceAccessor
(ResourceAccessor resourceAccessor) Set a ResourceAccessor on this Executor to be used in file accessdefault boolean
Default implementation for compatibility with a Database.int
update
(SqlStatement sql) int
update
(SqlStatement sql, List<SqlVisitor> sqlVisitors) boolean
Validate if the changeset can be executed by this Executor If the ChangeSet can be executed return an empty ValidationErrors object otherwise return the errors
-
Method Details
-
getName
String getName()Return the name of the Executor- Returns:
- String The Executor name
-
getPriority
int getPriority()Return the Executor priority- Returns:
- int The Executor priority
-
validate
Validate if the changeset can be executed by this Executor If the ChangeSet can be executed return an empty ValidationErrors object otherwise return the errors- Parameters:
changeSet
- The changeset to validate- Returns:
- ValidationErrors Any errors which occur during validation
-
modifyChangeSet
Allow this Executor to make any needed changes to the changeset- Parameters:
changeSet
- The changeset to operate on
-
setResourceAccessor
Set a ResourceAccessor on this Executor to be used in file access- Parameters:
resourceAccessor
-
-
setDatabase
Configures the Executor for the Database to run statements/queries against.- Parameters:
database
- The database
-
queryForObject
Execute a query that is expected to return a scalar (1 row, 1 column). It is expected that the scalar can be cast into an object of type T.- Parameters:
sql
- The query to execute- Returns:
- An object of type T, if successful. May also return null if no object is found.
- Throws:
DatabaseException
- in case something goes wrong during the query execution
-
queryForObject
<T> T queryForObject(SqlStatement sql, Class<T> requiredType, List<SqlVisitor> sqlVisitors) throws DatabaseException Applies a number of SqlVisitors to the sql query. Then, executes the (possibly modified) query. The query is expected to return a scalar (1 row, 1 column). That scalar is expected to return a single value that can be cast into an object of type T.- Parameters:
sql
- The query to execute- Returns:
- An object of type T, if successful. May also return null if no object is found.
- Throws:
DatabaseException
- in case something goes wrong during the query execution
-
queryForLong
Executes a query that is expected to return a scalar (1 row, 1 column). It is expected that the scalar can be cast into a long.- Parameters:
sql
- The query to execute- Returns:
- A long value, if successful
- Throws:
DatabaseException
- in case something goes wrong during the query execution
-
queryForLong
Applies a number of SqlVisitors to the sql query. Then, executes the (possibly modified) query. The query is expected to return a scalar (1 row, 1 column), and that scalar is expected to be a long value.- Parameters:
sql
- The query to execute- Returns:
- A long value, if successful
- Throws:
DatabaseException
- in case something goes wrong during the query execution
-
queryForInt
Executes a query that is expected to return a scalar (1 row, 1 column). It is expected that the scalar can be cast into an int.- Parameters:
sql
- The query to execute- Returns:
- An integer, if successful
- Throws:
DatabaseException
- in case something goes wrong during the query execution
-
queryForInt
Applies a number of SqlVisitors to the sql query. Then, executes the (possibly modified) query. The query is expected to return a scalar (1 row, 1 column), and that scalar is expected to be an int.- Parameters:
sql
- The query to execute- Returns:
- An integer, if successful
- Throws:
DatabaseException
- in case something goes wrong during the query execution
-
queryForList
- Throws:
DatabaseException
-
queryForList
List queryForList(SqlStatement sql, Class elementType, List<SqlVisitor> sqlVisitors) throws DatabaseException - Throws:
DatabaseException
-
queryForList
Executes a given SQL statement and returns a List of rows. Each row is represented a a Map<String, ?>, where the String is the column name and the value if the content of the column in the row (=cell).- Parameters:
sql
- the SQL query to execute- Returns:
- a List of [Column name] -> [column value]-mapped rows.
- Throws:
DatabaseException
- if an error occurs during SQL processing (e.g. the SQL is not valid for the database)
-
queryForList
List<Map<String,?>> queryForList(SqlStatement sql, List<SqlVisitor> sqlVisitors) throws DatabaseException Applies a list of SqlVisitors to the SQL query, then executes the (possibly modified) SQL query and lastly, returns the list of rows. Each row is represented a a Map<String, ?>, where the String is the column name and the value if the content of the column in the row (=cell).- Parameters:
sql
- the SQL query to execute- Returns:
- a List of [Column name] -> [column value]-mapped rows.
- Throws:
DatabaseException
- if an error occurs during SQL processing (e.g. the SQL is not valid for the database)
-
execute
Write methods- Throws:
DatabaseException
-
execute
- Throws:
DatabaseException
-
execute
- Throws:
DatabaseException
-
execute
- Throws:
DatabaseException
-
update
- Throws:
DatabaseException
-
update
- Throws:
DatabaseException
-
comment
Adds a comment to the database. Currently does nothing but is overridden in the output JDBC template- Parameters:
message
-- Throws:
DatabaseException
-
updatesDatabase
boolean updatesDatabase() -
supports
Default implementation for compatibility with a Database. Requires default implementation in order to provide backward compatibility. Method is used when ExecutorService is looking by a Executor implementation for a Database. Can be overridden in Executor implementations with a higher priority to check against a Database.- Parameters:
database
- the Database implementation opened from a url connection string- Returns:
- true if Database is supported by current Executor implementation.
-