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 TypeMethodDescriptionvoidAdds a comment to the database.voidWrite methodsvoidexecute(Change change, List<SqlVisitor> sqlVisitors) voidexecute(SqlStatement sql) voidexecute(SqlStatement sql, List<SqlVisitor> sqlVisitors) getName()Return the name of the ExecutorintReturn the Executor priorityvoidmodifyChangeSet(ChangeSet changeSet) Allow this Executor to make any needed changes to the changesetintqueryForInt(SqlStatement sql) Executes a query that is expected to return a scalar (1 row, 1 column).intqueryForInt(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.longqueryForLong(SqlStatement sql) Executes a query that is expected to return a scalar (1 row, 1 column).longqueryForLong(SqlStatement sql, List<SqlVisitor> sqlVisitors) Applies a number of SqlVisitors to the sql query.<T> TqueryForObject(SqlStatement sql, Class<T> requiredType) Execute a query that is expected to return a scalar (1 row, 1 column).<T> TqueryForObject(SqlStatement sql, Class<T> requiredType, List<SqlVisitor> sqlVisitors) Applies a number of SqlVisitors to the sql query.voidsetDatabase(Database database) Configures the Executor for the Database to run statements/queries against.voidsetResourceAccessor(ResourceAccessor resourceAccessor) Set a ResourceAccessor on this Executor to be used in file accessdefault booleanDefault implementation for compatibility with a Database.intupdate(SqlStatement sql) intupdate(SqlStatement sql, List<SqlVisitor> sqlVisitors) booleanValidate 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.
-