| 
 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Objectcom.massimo.tools.scriptrunner.AbstractTask
com.massimo.tools.scriptrunner.work.SQLTask
public class SQLTask
Task to handle SQL or procedural SQL from the definition text.
 
Introduces attributes Constants.ATTRIBUTE_BINDS 
 and  Constants.ATTRIBUTE_STATMENT_SPLIT.
 
The task element body is the SQL to execute.
 The SQL is split into statements according to the statement-split attribute or pre-defined patterns (for supported databases).
 The statements are executed and progress logged. 
 After an error and exit, a re-start will pick up at the statement that errored.
| Field Summary | |
|---|---|
| protected static String | BIND_END_DELIMITERSPunctuation that can make the end of a bind variable | 
| protected  String[] | bindNames | 
| protected  Connection | connection | 
| protected  DatabaseType | dbType | 
| protected  String | run_id | 
| protected static String | SQL_CHECK_PREFIX_ORACLE | 
| protected static String | SQL_CHECK_PREFIX_POSTGRES | 
| protected static String | SQL_CHECK_SUFFIX_ORACLE | 
| protected static String | SQL_CHECK_SUFFIX_POSTGRES | 
| protected static Pattern | SQL_NON_COMMENT_PATTERN | 
| protected static Pattern | SQL_STMT_PATTERN_ORACLEOracle uses / | 
| protected static Pattern | SQL_STMT_PATTERN_POSTGRESPostgres uses \g | 
| Fields inherited from class com.massimo.tools.scriptrunner.AbstractTask | 
|---|
| definition, name, parent, properties, type | 
| Fields inherited from interface com.massimo.tools.scriptrunner.Task | 
|---|
| DATA_ERROR, ERROR, FINISHED, INTERRUPTED, PROMPT, RUNNING, START, SUCCESS | 
| Constructor Summary | |
|---|---|
| SQLTask(Task parent,
        String type,
        Element definition,
        Map<String,String> properties) | |
| Method Summary | |
|---|---|
| protected  int | doProcess(ExecutionContext context)Implementing classes only need to do their own work and log progress when appropriate. | 
| protected  int | doValidate(ValidationContext context)Check whether this task should be able to run. | 
| protected  int | executeSQL(ExecutionContext context,
           String sqlText) | 
| protected  void | finalize()Attempts to close the database connection. | 
| protected  String[] | getBindNames()Read the binds attribute and return variable names in a String array. | 
| protected  org.apache.log4j.Logger | getLogger() | 
| protected  Pattern | getSQLSplitPattern()Checks attribute statement-split, before looking at the DBMS connection. | 
| protected  String | getSQLText()Sub-classes may override this if the SQL is not simply the XML text. | 
| protected  String | getSQLWarning(SQLWarning sqlWarning)Walk down the chain of warnings, adding each to the return value. | 
| protected  String[] | parseTextIntoStatements(String parameterizedText)Break the text up into individaul statments. | 
| protected  int | postCheck(ExecutionContext context)Execute the configured pre-execution check function The default is run_progress.postcheck(:run_id, :module). | 
| protected  int | preCheck()A precheck can be done to see if the task should be executed. | 
| protected  void | setBinds(PreparedStatement stmt,
         List<String> binds)Bind the variables to the statement. | 
| protected  String | substitiuteBinds(String sql,
                 List<String> binds)Parses the statement looking for known bind variables. | 
| protected  int | validateBinds(ValidationContext context)Checks that bind variables in bindNames have values. | 
| protected  int | validateSQL(String sqlText,
            ValidationContext context) | 
| Methods inherited from class com.massimo.tools.scriptrunner.AbstractTask | 
|---|
| getBooleanProperty, getCurrentWorkingDirectory, getDefinition, getIntProperty, getName, getParent, getProperties, getStartProcessingRow, getText, getType, interrupt, isIgnoreableError, isIgnoreableError, isInterrupted, isLogProgress, postProcess, preProcess, process, resultCodeToString, substituteParameters, toString, validate, validateConnections, validateParameters | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait | 
| Field Detail | 
|---|
protected static final String BIND_END_DELIMITERS
protected String[] bindNames
protected Connection connection
protected DatabaseType dbType
protected String run_id
protected static final String SQL_CHECK_PREFIX_ORACLE
protected static final String SQL_CHECK_PREFIX_POSTGRES
protected static final String SQL_CHECK_SUFFIX_ORACLE
protected static final String SQL_CHECK_SUFFIX_POSTGRES
protected static final Pattern SQL_NON_COMMENT_PATTERN
protected static final Pattern SQL_STMT_PATTERN_ORACLE
protected static final Pattern SQL_STMT_PATTERN_POSTGRES
| Constructor Detail | 
|---|
public SQLTask(Task parent,
               String type,
               Element definition,
               Map<String,String> properties)
        throws Exception
parent - type - definition - properties - 
Exception| Method Detail | 
|---|
protected int doProcess(ExecutionContext context)
                 throws Exception
doProcess in class AbstractTaskExceptionAbstractTask.process(ExecutionContext)protected int doValidate(ValidationContext context)
doValidate in class AbstractTask
protected int executeSQL(ExecutionContext context,
                         String sqlText)
                  throws SQLException,
                         SRException
context - sqlText - 
SQLException
SRException
protected void finalize()
                 throws Throwable
finalize in class ObjectThrowableprotected String[] getBindNames()
protected org.apache.log4j.Logger getLogger()
getLogger in class AbstractTaskprotected Pattern getSQLSplitPattern()
protected String getSQLText()
protected String getSQLWarning(SQLWarning sqlWarning)
sqlWarning - 
protected String[] parseTextIntoStatements(String parameterizedText)
parameterizedText - 
protected int postCheck(ExecutionContext context)
                 throws SQLException,
                        SRException
context - 
SQLException
SRException
protected int preCheck()
                throws SQLException
SQLException - if the query fails.
protected void setBinds(PreparedStatement stmt,
                        List<String> binds)
                 throws SQLException
stmt - PreparedStatementbinds - List
SQLException
protected String substitiuteBinds(String sql,
                                  List<String> binds)
sql - StringBufferbinds - List to populate with the names of bind variables, in the order they appear
protected int validateBinds(ValidationContext context)
context - 
protected int validateSQL(String sqlText,
                          ValidationContext context)
| 
 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||