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;
}
}
createClasspath
public Path createClasspath()
Add a path to the classpath for loading the driver.
getClasspath
public Path getClasspath()
Gets the classpath.
- Returns a Path
getConnection
protected 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.
- Connection the newly created connection.
BuildException
- if the UserId/Password/Url is not set or there
is no suitable driver or the driver fails to load.
getLoaderMap
protected static Hashtable getLoaderMap()
getPassword
public String getPassword()
Gets the password.
- Returns a String
getRdbms
public String getRdbms()
Gets the rdbms.
- Returns a String
getUrl
public String getUrl()
Gets the url.
- Returns a String
getUserId
public String getUserId()
Gets the userId.
- Returns a String
getVersion
public String getVersion()
Gets the version.
- Returns a String
isAutocommit
public boolean isAutocommit()
Gets the autocommit.
- Returns a boolean
isCaching
public void isCaching(boolean value)
isValidRdbms
protected boolean isValidRdbms(Connection conn)
Verify we are connected to the correct RDBMS
setAutocommit
public void setAutocommit(boolean autocommit)
Auto commit flag for database connection;
optional, default false.
autocommit
- The autocommit 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
enable
-
setClasspath
public void setClasspath(Path classpath)
Sets the classpath for loading the driver.
classpath
- The classpath to set
setClasspathRef
public void setClasspathRef(Reference r)
Set the classpath for loading the driver
using the classpath reference.
setDriver
public void setDriver(String driver)
Class name of the JDBC driver; required.
driver
- The driver to set
setPassword
public void setPassword(String password)
Sets the password; required.
password
- The password to set
setRdbms
public void setRdbms(String rdbms)
Execute task only if the lower case product name
of the DB matches this
rdbms
- The rdbms to set
setUrl
public void setUrl(String url)
Sets the database connection URL; required.
url
- The url to set
setUserid
public void setUserid(String userId)
Set the user name for the connection; required.
userId
- The userId to set
setVersion
public void setVersion(String version)
Sets the version string, execute task only if
rdbms version match; optional.
version
- The version to set