Google

JDBCTask (Apache Ant API)

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

Direct Known Subclasses:
SQLExec

public abstract class JDBCTask
extends Task

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 ingore){}
             }
             if (conn != null) {
                 try {conn.close();}catch (SQLException ingore){}
             }
         }
     }
     public void setTableName(String tableName) {
         this.tableName = tableName;
     }
 
 }
 
  
 

Since:
Ant 1.5
Author:
Nick Chalko
, Jeff Martin , Michael McCallum , Tim Stephenson

Field Summary
 
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
JDBCTask()
           
 
Method Summary
 Path createClasspath()
          Add a path to the classpath for loading the driver.
 Path getClasspath()
          Gets the classpath.
protected  java.sql.Connection getConnection()
          Creates a new Connection as using the driver, url, userid and password specified.
protected  AntClassLoader getLoader()
           
protected static java.util.Hashtable getLoaderMap()
           
 java.lang.String getPassword()
          Gets the password.
 java.lang.String getRdbms()
          Gets the rdbms.
 java.lang.String getUrl()
          Gets the url.
 java.lang.String getUserId()
          Gets the userId.
 java.lang.String getVersion()
          Gets the version.
 boolean isAutocommit()
          Gets the autocommit.
 void isCaching(boolean value)
           
protected  boolean isValidRdbms(java.sql.Connection conn)
          Verify we are connected to the correct RDBMS
 void setAutocommit(boolean autocommit)
          Auto commit flag for database connection; optional, default false.
 void setCaching(boolean enable)
          Caching loaders / driver.
 void setClasspath(Path classpath)
          Sets the classpath for loading the driver.
 void setClasspathRef(Reference r)
          Set the classpath for loading the driver using the classpath reference.
 void setDriver(java.lang.String driver)
          Class name of the JDBC driver; required.
 void setPassword(java.lang.String password)
          Sets the password; required.
 void setRdbms(java.lang.String rdbms)
          Execute task only if the lower case product name of the DB matches this
 void setUrl(java.lang.String url)
          Sets the database connection URL; required.
 void setUserid(java.lang.String userId)
          Set the user name for the connection; required.
 void setVersion(java.lang.String version)
          Sets the version string, execute task only if rdbms version match; optional.
 
Methods inherited from class org.apache.tools.ant.Task
execute, getDescription, getLocation, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, handleErrorOutput, handleOutput, init, isInvalid, log, log, maybeConfigure, perform, setDescription, setLocation, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName
 
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
 

Constructor Detail

JDBCTask


public JDBCTask()
Method Detail

setClasspath


public void setClasspath(Path classpath)
Sets the classpath for loading the driver.

Parameters:
classpath - The classpath to set

setCaching


public 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 -

createClasspath


public Path createClasspath()
Add a path to the classpath for loading the driver.


setClasspathRef


public void setClasspathRef(Reference r)
Set the classpath for loading the driver using the classpath reference.


setDriver


public void setDriver(java.lang.String driver)
Class name of the JDBC driver; required.

Parameters:
driver - The driver to set

setUrl


public void setUrl(java.lang.String url)
Sets the database connection URL; required.

Parameters:
url - The url to set

setPassword


public void setPassword(java.lang.String password)
Sets the password; required.

Parameters:
password - The password to set

setAutocommit


public void setAutocommit(boolean autocommit)
Auto commit flag for database connection; optional, default false.

Parameters:
autocommit - The autocommit to set

setRdbms


public void setRdbms(java.lang.String rdbms)
Execute task only if the lower case product name of the DB matches this

Parameters:
rdbms - The rdbms to set

setVersion


public void setVersion(java.lang.String version)
Sets the version string, execute task only if rdbms version match; optional.

Parameters:
version - The version to set

isValidRdbms


protected boolean isValidRdbms(java.sql.Connection conn)
Verify we are connected to the correct RDBMS


getLoaderMap


protected static java.util.Hashtable getLoaderMap()

getLoader


protected AntClassLoader getLoader()

getConnection


protected java.sql.Connection getConnection()
                                     throws BuildException
Creates 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.
Throws:
BuildException - if the UserId/Password/Url is not set or there is no suitable driver or the driver fails to load.

isCaching


public void isCaching(boolean value)

getClasspath


public Path getClasspath()
Gets the classpath.

Returns:
Returns a Path

isAutocommit


public boolean isAutocommit()
Gets the autocommit.

Returns:
Returns a boolean

getUrl


public java.lang.String getUrl()
Gets the url.

Returns:
Returns a String

getUserId


public java.lang.String getUserId()
Gets the userId.

Returns:
Returns a String

setUserid


public void setUserid(java.lang.String userId)
Set the user name for the connection; required.

Parameters:
userId - The userId to set

getPassword


public java.lang.String getPassword()
Gets the password.

Returns:
Returns a String

getRdbms


public java.lang.String getRdbms()
Gets the rdbms.

Returns:
Returns a String

getVersion


public java.lang.String getVersion()
Gets the version.

Returns:
Returns a String


Copyright © 2000-2002 Apache Software Foundation. All Rights Reserved.