Package org.apache.tools.ant.taskdefs
Class JDBCTask
java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.tools.ant.taskdefs.JDBCTask
- All Implemented Interfaces:
- Cloneable
- Direct Known Subclasses:
- SQLExec
Handles JDBC configuration needed by SQL type tasks.
 
The following example class prints the contents of the first column of each row in TableName.
package examples;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.taskdefs.JDBCTask;
public class SQLExampleTask extends JDBCTask {
    private String tableName;
    public void execute() throws BuildException {
        Connection conn = getConnection();
        Statement stmt=null;
        try {
            if (tableName == null) {
                throw new BuildException("TableName must be specified", location);
            }
            String sql = "SELECT * FROM "+tableName;
            stmt= conn.createStatement();
            ResultSet rs = stmt.executeQuery(sql);
            while (rs.next()) {
                log(rs.getObject(1).toString());
            }
        } catch (SQLException e) {
        } finally {
            if (stmt != null) {
                try {stmt.close();}catch (SQLException ignore) {}
            }
            if (conn != null) {
                try {conn.close();}catch (SQLException ignore) {}
            }
        }
    }
    public void setTableName(String tableName) {
        this.tableName = tableName;
    }
}
- Since:
- Ant 1.5
- 
Field SummaryFields inherited from class org.apache.tools.ant.ProjectComponentdescription, location, project
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidAdditional properties to put into the JDBC connection string.Add a path to the classpath for loading the driver.Gets the classpath.protected ConnectionCreates a new Connection as using the driver, url, userid and password specified.protected AntClassLoaderGet the classloader used to create a driver.protected static Hashtable<String, AntClassLoader> Get the cache of loaders and drivers.Gets the password.getRdbms()Gets the rdbms.getUrl()Gets the url.Gets the userId.Gets the version.booleanGets the autocommit.voidisCaching(boolean value) Set the caching attribute.protected booleanisValidRdbms(Connection conn) Verify we are connected to the correct RDBMSvoidsetAutocommit(boolean autocommit) Auto commit flag for database connection; optional, default false.voidsetCaching(boolean enable) Caching loaders / driver.voidsetClasspath(Path classpath) Sets the classpath for loading the driver.voidSet the classpath for loading the driver using the classpath reference.voidClass name of the JDBC driver; required.voidsetFailOnConnectionError(boolean b) whether the task should cause the build to fail if it cannot connect to the database.voidsetPassword(String password) Sets the password; required.voidExecute task only if the lower case product name of the DB matches thisvoidSets the database connection URL; required.voidSet the user name for the connection; required.voidsetVersion(String version) Sets the version string, execute task only if rdbms version match; optional.Methods inherited from class org.apache.tools.ant.TaskbindToOwner, execute, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskTypeMethods inherited from class org.apache.tools.ant.ProjectComponentclone, getDescription, getLocation, getProject, setDescription, setLocation, setProject
- 
Constructor Details- 
JDBCTaskpublic JDBCTask()
 
- 
- 
Method Details- 
setClasspathSets the classpath for loading the driver.- Parameters:
- classpath- The classpath to set
 
- 
setCachingpublic void setCaching(boolean enable) Caching loaders / driver. This is to avoid getting an OutOfMemoryError when calling this task multiple times in a row; default: true- Parameters:
- enable- a- booleanvalue
 
- 
createClasspathAdd a path to the classpath for loading the driver.- Returns:
- a path to be configured
 
- 
setClasspathRefSet the classpath for loading the driver using the classpath reference.- Parameters:
- r- a reference to a classpath
 
- 
setDriverClass name of the JDBC driver; required.- Parameters:
- driver- The driver to set
 
- 
setUrlSets the database connection URL; required.- Parameters:
- url- The url to set
 
- 
setPasswordSets the password; required.- Parameters:
- password- The password to set
 
- 
setAutocommitpublic void setAutocommit(boolean autocommit) Auto commit flag for database connection; optional, default false.- Parameters:
- autocommit- The autocommit to set
 
- 
setRdbmsExecute task only if the lower case product name of the DB matches this- Parameters:
- rdbms- The rdbms to set
 
- 
setVersionSets the version string, execute task only if rdbms version match; optional.- Parameters:
- version- The version to set
 
- 
setFailOnConnectionErrorpublic void setFailOnConnectionError(boolean b) whether the task should cause the build to fail if it cannot connect to the database.- Parameters:
- b- boolean
- Since:
- Ant 1.8.0
 
- 
isValidRdbmsVerify we are connected to the correct RDBMS- Parameters:
- conn- the jdbc connection
- Returns:
- true if we are connected to the correct RDBMS
 
- 
getLoaderMapGet the cache of loaders and drivers.- Returns:
- a hashtable
 
- 
getLoaderGet the classloader used to create a driver.- Returns:
- the classloader
 
- 
addConnectionPropertyAdditional properties to put into the JDBC connection string.- Parameters:
- var- Property
- Since:
- Ant 1.8.0
 
- 
getConnectionCreates a new Connection as using the driver, url, userid and password specified. The calling method is responsible for closing the connection.- Returns:
- Connection the newly created connection or null if the connection failed and failOnConnectionError is false.
- Throws:
- BuildException- if the UserId/Password/Url is not set or there is no suitable driver or the driver fails to load.
 
- 
isCachingpublic void isCaching(boolean value) Set the caching attribute.- Parameters:
- value- a- booleanvalue
 
- 
getClasspath
- 
isAutocommitpublic boolean isAutocommit()Gets the autocommit.- Returns:
- Returns a boolean
 
- 
getUrl
- 
getUserId
- 
setUseridSet the user name for the connection; required.- Parameters:
- userId- The userId to set
 
- 
getPassword
- 
getRdbms
- 
getVersion
 
-