Package liquibase.executor
Interface Executor
-
- All Superinterfaces:
Plugin
- All Known Implementing Classes:
AbstractExecutor
,JdbcExecutor
,LoggingExecutor
,MockExecutor
,SnowflakeJdbcExecutor
public interface Executor extends Plugin
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
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description void
comment(String message)
Adds a comment to the database.void
execute(Change change)
Write methodsvoid
execute(Change change, List<SqlVisitor> sqlVisitors)
void
execute(SqlStatement sql)
void
execute(SqlStatement sql, List<SqlVisitor> sqlVisitors)
String
getName()
Return the name of the Executorint
getPriority()
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.List<Map<String,?>>
queryForList(SqlStatement sql)
Executes a given SQL statement and returns a List of rows.List
queryForList(SqlStatement sql, Class elementType)
List
queryForList(SqlStatement sql, Class elementType, List<SqlVisitor> sqlVisitors)
List<Map<String,?>>
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
supports(Database database)
Default implementation for compatibility with a Database.int
update(SqlStatement sql)
int
update(SqlStatement sql, List<SqlVisitor> sqlVisitors)
boolean
updatesDatabase()
ValidationErrors
validate(ChangeSet changeSet)
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 Detail
-
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
ValidationErrors validate(ChangeSet changeSet)
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
void modifyChangeSet(ChangeSet changeSet)
Allow this Executor to make any needed changes to the changeset- Parameters:
changeSet
- The changeset to operate on
-
setResourceAccessor
void setResourceAccessor(ResourceAccessor resourceAccessor)
Set a ResourceAccessor on this Executor to be used in file access- Parameters:
resourceAccessor
-
-
setDatabase
void setDatabase(Database database)
Configures the Executor for the Database to run statements/queries against.- Parameters:
database
- The database
-
queryForObject
<T> T queryForObject(SqlStatement sql, Class<T> requiredType) throws DatabaseException
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
long queryForLong(SqlStatement sql) throws DatabaseException
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
long queryForLong(SqlStatement sql, 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), 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
int queryForInt(SqlStatement sql) throws DatabaseException
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
int queryForInt(SqlStatement sql, 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), 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
List queryForList(SqlStatement sql, Class elementType) throws DatabaseException
- Throws:
DatabaseException
-
queryForList
List queryForList(SqlStatement sql, Class elementType, List<SqlVisitor> sqlVisitors) throws DatabaseException
- Throws:
DatabaseException
-
queryForList
List<Map<String,?>> queryForList(SqlStatement sql) throws DatabaseException
Executes a given SQL statement and returns a List of rows. Each row is represented a a Map, 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, 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
void execute(Change change) throws DatabaseException
Write methods- Throws:
DatabaseException
-
execute
void execute(Change change, List<SqlVisitor> sqlVisitors) throws DatabaseException
- Throws:
DatabaseException
-
execute
void execute(SqlStatement sql) throws DatabaseException
- Throws:
DatabaseException
-
execute
void execute(SqlStatement sql, List<SqlVisitor> sqlVisitors) throws DatabaseException
- Throws:
DatabaseException
-
update
int update(SqlStatement sql) throws DatabaseException
- Throws:
DatabaseException
-
update
int update(SqlStatement sql, List<SqlVisitor> sqlVisitors) throws DatabaseException
- Throws:
DatabaseException
-
comment
void comment(String message) throws DatabaseException
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 boolean supports(Database database)
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.
-
-