org.apache.torque.task
Class TorqueSQLExec

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.Task
          extended by org.apache.torque.task.TorqueSQLExec

public class TorqueSQLExec
extends org.apache.tools.ant.Task

This task uses an SQL -> Database map in the form of a properties file to insert each SQL file listed into its designated database.

Version:
$Id: TorqueSQLExec.java,v 1.1 2007-10-21 07:57:26 abyrne Exp $
Author:
Jeff Martin, Michael McCallum, Tim Stephenson, Jason van Zyl, Martin Poeschl

Nested Class Summary
static class TorqueSQLExec.DelimiterType
           
static class TorqueSQLExec.OnError
          Enumerated attribute with the values "continue", "stop" and "abort" for the onerror attribute.
 class TorqueSQLExec.Transaction
          Contains the definition of a new transaction element.
 
Field Summary
private  boolean autocommit
          Autocommit flag.
private  org.apache.tools.ant.types.Path classpath
           
private  Connection conn
          Database connection
private  String delimiter
          SQL Statement delimiter
private  String delimiterType
          The delimiter type indicating whether the delimiter will only be recognized on a line by itself
private  String driver
          DB driver.
private  String encoding
          Encoding to use when reading SQL statements from a file
private  int goodSql
           
private  org.apache.tools.ant.AntClassLoader loader
           
private  String onError
          Action to perform if an error is found
private  File output
          Results Output file.
private  String password
          Password
private  boolean print
          Print SQL results.
private  String rdbms
          RDBMS Product needed for this SQL.
private  boolean showheaders
          Print header columns.
private  File sqldbmap
          Properties file that maps an individual SQL file to a database.
private  String srcDir
          Src directory for the files listed in the sqldbmap.
private  Statement statement
          SQL statement
private  int totalSql
           
private  String url
          DB url.
private  String userId
          User name.
private  String version
          RDBMS Version needed for this SQL.
 
Fields inherited from class org.apache.tools.ant.Task
description, location, target, taskName, taskType, wrapper
 
Fields inherited from class org.apache.tools.ant.ProjectComponent
project
 
Constructor Summary
TorqueSQLExec()
           
 
Method Summary
 void addText(String sql)
          Deprecated. This method has no effect and will be removed in a future version.
 org.apache.tools.ant.types.Path createClasspath()
          Create the classpath for loading the driver.
protected  void execSQL(String sql, PrintStream out)
          Exec the sql statement.
 void execute()
          Load the sql file and then execute it
 File getSqlDbMap()
          Get the sqldbmap properties file.
 String getSrcDir()
          Get the src directory for the sql files listed in the sqldbmap file.
private  void insertDatabaseSqlFiles(String url, String database, List<?> transactions)
          Take the base url, the target database and insert a set of SQL files into the target database.
protected  boolean isValidRdbms(Connection conn)
          Verify if connected to the correct RDBMS
protected  void printResults(PrintStream out)
          print any results in the statement.
protected  void runStatements(Reader reader, PrintStream out)
          Read the statements from the .sql file and execute them.
 void setAutocommit(boolean autocommit)
          Set the autocommit flag for the DB connection.
 void setClasspath(org.apache.tools.ant.types.Path classpath)
          Set the classpath for loading the driver.
 void setClasspathRef(org.apache.tools.ant.types.Reference r)
          Set the classpath for loading the driver using the classpath reference.
 void setDelimiter(String delimiter)
          Set the statement delimiter.
 void setDelimiterType(TorqueSQLExec.DelimiterType delimiterType)
          Set the Delimiter type for this sql task.
 void setDriver(String driver)
          Set the JDBC driver to be used.
 void setEncoding(String encoding)
          Set the file encoding to use on the sql files read in
 void setOnerror(TorqueSQLExec.OnError action)
          Set the action to perform onerror
 void setOutput(File output)
          Set the output file.
 void setPassword(String password)
          Set the password for the DB connection.
 void setPrint(boolean print)
          Set the print flag.
 void setRdbms(String vendor)
          Set the rdbms required
 void setShowheaders(boolean showheaders)
          Set the showheaders flag.
 void setSqlDbMap(String sqldbmap)
          Set the sqldbmap properties file.
 void setSrcDir(String srcDir)
          Set the src directory for the sql files listed in the sqldbmap file.
 void setUrl(String url)
          Set the DB connection url.
 void setUserid(String userId)
          Set the user name for the DB connection.
 void setVersion(String version)
          Set the version required
 
Methods inherited from class org.apache.tools.ant.Task
getDescription, getLocation, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, maybeConfigure, perform, reconfigure, setDescription, setLocation, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType
 
Methods inherited from class org.apache.tools.ant.ProjectComponent
getProject, setProject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

goodSql

private int goodSql

totalSql

private int totalSql

classpath

private org.apache.tools.ant.types.Path classpath

loader

private org.apache.tools.ant.AntClassLoader loader

conn

private Connection conn
Database connection


autocommit

private boolean autocommit
Autocommit flag. Default value is false


statement

private Statement statement
SQL statement


driver

private String driver
DB driver.


url

private String url
DB url.


userId

private String userId
User name.


password

private String password
Password


delimiter

private String delimiter
SQL Statement delimiter


delimiterType

private String delimiterType
The delimiter type indicating whether the delimiter will only be recognized on a line by itself


print

private boolean print
Print SQL results.


showheaders

private boolean showheaders
Print header columns.


output

private File output
Results Output file.


rdbms

private String rdbms
RDBMS Product needed for this SQL.


version

private String version
RDBMS Version needed for this SQL.


onError

private String onError
Action to perform if an error is found


encoding

private String encoding
Encoding to use when reading SQL statements from a file


srcDir

private String srcDir
Src directory for the files listed in the sqldbmap.


sqldbmap

private File sqldbmap
Properties file that maps an individual SQL file to a database.

Constructor Detail

TorqueSQLExec

public TorqueSQLExec()
Method Detail

setSqlDbMap

public void setSqlDbMap(String sqldbmap)
Set the sqldbmap properties file.

Parameters:
sqldbmap - filename for the sqldbmap

getSqlDbMap

public File getSqlDbMap()
Get the sqldbmap properties file.

Returns:
filename for the sqldbmap

setSrcDir

public void setSrcDir(String srcDir)
Set the src directory for the sql files listed in the sqldbmap file.

Parameters:
srcDir - sql source directory

getSrcDir

public String getSrcDir()
Get the src directory for the sql files listed in the sqldbmap file.

Returns:
sql source directory

setClasspath

public void setClasspath(org.apache.tools.ant.types.Path classpath)
Set the classpath for loading the driver.

Parameters:
classpath - the classpath

createClasspath

public org.apache.tools.ant.types.Path createClasspath()
Create the classpath for loading the driver.

Returns:
the classpath

setClasspathRef

public void setClasspathRef(org.apache.tools.ant.types.Reference r)
Set the classpath for loading the driver using the classpath reference.

Parameters:
r - reference to the classpath

addText

public void addText(String sql)
Deprecated. This method has no effect and will be removed in a future version.

Set the sql command to execute

Parameters:
sql - sql command to execute

setDriver

public void setDriver(String driver)
Set the JDBC driver to be used.

Parameters:
driver - driver class name

setUrl

public void setUrl(String url)
Set the DB connection url.

Parameters:
url - connection url

setUserid

public void setUserid(String userId)
Set the user name for the DB connection.

Parameters:
userId - database user

setEncoding

public void setEncoding(String encoding)
Set the file encoding to use on the sql files read in

Parameters:
encoding - the encoding to use on the files

setPassword

public void setPassword(String password)
Set the password for the DB connection.

Parameters:
password - database password

setAutocommit

public void setAutocommit(boolean autocommit)
Set the autocommit flag for the DB connection.

Parameters:
autocommit - the autocommit flag

setDelimiter

public void setDelimiter(String delimiter)
Set the statement delimiter.

For example, set this to "go" and delimitertype to "ROW" for Sybase ASE or MS SQL Server.

Parameters:
delimiter -

setDelimiterType

public void setDelimiterType(TorqueSQLExec.DelimiterType delimiterType)
Set the Delimiter type for this sql task. The delimiter type takes two values - normal and row. Normal means that any occurence of the delimiter terminate the SQL command whereas with row, only a line containing just the delimiter is recognized as the end of the command.

Parameters:
delimiterType -

setPrint

public void setPrint(boolean print)
Set the print flag.

Parameters:
print -

setShowheaders

public void setShowheaders(boolean showheaders)
Set the showheaders flag.

Parameters:
showheaders -

setOutput

public void setOutput(File output)
Set the output file.

Parameters:
output -

setRdbms

public void setRdbms(String vendor)
Set the rdbms required

Parameters:
vendor -

setVersion

public void setVersion(String version)
Set the version required

Parameters:
version -

setOnerror

public void setOnerror(TorqueSQLExec.OnError action)
Set the action to perform onerror

Parameters:
action -

execute

public void execute()
             throws org.apache.tools.ant.BuildException
Load the sql file and then execute it

Overrides:
execute in class org.apache.tools.ant.Task
Throws:
org.apache.tools.ant.BuildException

insertDatabaseSqlFiles

private void insertDatabaseSqlFiles(String url,
                                    String database,
                                    List<?> transactions)
Take the base url, the target database and insert a set of SQL files into the target database.

Parameters:
url -
database -
transactions -

runStatements

protected void runStatements(Reader reader,
                             PrintStream out)
                      throws SQLException,
                             IOException
Read the statements from the .sql file and execute them. Lines starting with '//', '--' or 'REM ' are ignored.

Parameters:
reader -
out -
Throws:
SQLException
IOException

isValidRdbms

protected boolean isValidRdbms(Connection conn)
Verify if connected to the correct RDBMS

Parameters:
conn -

execSQL

protected void execSQL(String sql,
                       PrintStream out)
                throws SQLException
Exec the sql statement.

Parameters:
sql -
out -
Throws:
SQLException

printResults

protected void printResults(PrintStream out)
                     throws SQLException
print any results in the statement.

Parameters:
out -
Throws:
SQLException


Copyright © 2007-2011 The Kuali Foundation. All Rights Reserved.