Package liquibase.executor
Class LoggingExecutor
- java.lang.Object
-
- liquibase.executor.AbstractExecutor
-
- liquibase.executor.LoggingExecutor
-
- Direct Known Subclasses:
MockExecutor
public class LoggingExecutor extends AbstractExecutor
A variant of the Executor service that does not actually modify the target database(s). Instead, it creates the SQL statements that would be executed. This is intended for cautious DBAs who want to examine and verify the generated changes.
-
-
Field Summary
-
Fields inherited from class liquibase.executor.AbstractExecutor
database, resourceAccessor
-
Fields inherited from interface liquibase.plugin.Plugin
PRIORITY_DATABASE, PRIORITY_DEFAULT, PRIORITY_NOT_APPLICABLE, PRIORITY_SPECIALIZED
-
-
Constructor Summary
Constructors Constructor Description LoggingExecutor(Executor delegatedExecutor, Writer output, Database database)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
comment(String message)
Adds a comment to the database.void
execute(SqlStatement sql)
void
execute(SqlStatement sql, List<SqlVisitor> sqlVisitors)
String
getName()
Return the name of the Executorprotected Writer
getOutput()
int
getPriority()
Return the Executor priorityint
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.int
update(SqlStatement sql)
int
update(SqlStatement sql, List<SqlVisitor> sqlVisitors)
boolean
updatesDatabase()
-
Methods inherited from class liquibase.executor.AbstractExecutor
applyVisitors, execute, execute, modifyChangeSet, setDatabase, setResourceAccessor, validate
-
-
-
-
Method Detail
-
getName
public String getName()
Return the name of the Executor- Specified by:
getName
in interfaceExecutor
- Specified by:
getName
in classAbstractExecutor
- Returns:
- String The Executor name
-
getPriority
public int getPriority()
Return the Executor priority- Specified by:
getPriority
in interfaceExecutor
- Specified by:
getPriority
in classAbstractExecutor
- Returns:
- int The Executor priority
-
getOutput
protected Writer getOutput()
-
execute
public void execute(SqlStatement sql) throws DatabaseException
- Throws:
DatabaseException
-
update
public int update(SqlStatement sql) throws DatabaseException
- Throws:
DatabaseException
-
execute
public void execute(SqlStatement sql, List<SqlVisitor> sqlVisitors) throws DatabaseException
- Throws:
DatabaseException
-
update
public int update(SqlStatement sql, List<SqlVisitor> sqlVisitors) throws DatabaseException
- Throws:
DatabaseException
-
comment
public void comment(String message) throws DatabaseException
Description copied from interface:Executor
Adds a comment to the database. Currently does nothing but is overridden in the output JDBC template- Throws:
DatabaseException
-
queryForObject
public <T> T queryForObject(SqlStatement sql, Class<T> requiredType) throws DatabaseException
Description copied from interface:Executor
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
public <T> T queryForObject(SqlStatement sql, Class<T> requiredType, List<SqlVisitor> sqlVisitors) throws DatabaseException
Description copied from interface:Executor
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
public long queryForLong(SqlStatement sql) throws DatabaseException
Description copied from interface:Executor
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
public long queryForLong(SqlStatement sql, List<SqlVisitor> sqlVisitors) throws DatabaseException
Description copied from interface:Executor
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
public int queryForInt(SqlStatement sql) throws DatabaseException
Description copied from interface:Executor
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
public int queryForInt(SqlStatement sql, List<SqlVisitor> sqlVisitors) throws DatabaseException
Description copied from interface:Executor
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
public List queryForList(SqlStatement sql, Class elementType) throws DatabaseException
- Throws:
DatabaseException
-
queryForList
public List queryForList(SqlStatement sql, Class elementType, List<SqlVisitor> sqlVisitors) throws DatabaseException
- Throws:
DatabaseException
-
queryForList
public List<Map<String,?>> queryForList(SqlStatement sql) throws DatabaseException
Description copied from interface:Executor
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
public List<Map<String,?>> queryForList(SqlStatement sql, List<SqlVisitor> sqlVisitors) throws DatabaseException
Description copied from interface:Executor
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)
-
updatesDatabase
public boolean updatesDatabase()
-
-