ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Martin <jeff.mar...@synamic.co.uk>
Subject PATCH: SQLExec
Date Tue, 25 Jul 2000 13:31:25 GMT
I've made some of the changes recommended. I have removed the setSQL method
and replaced it with addText so the sql task can now be used as <sql>select
* from monkey; select...</sql>.

Added autocommit flag to allow the autocommit to be set on the connection
and SQL warnings are now logged in verbose mode.

Think that's it.



Index: src/main/org/apache/tools/ant/taskdefs/SQLExec.java
===================================================================
RCS file:
/home/cvspublic/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/SQLExec.j
ava,v
retrieving revision 1.2
diff -r1.2 SQLExec.java
73a74,87
>     /**
>      * Database connection
>      */
>     private Connection conn = null;
> 
>     /**
>      * Autocommit flag. Default value is false
>      */
>     private boolean autocommit=false;
> 
>     /**
>      * SQL statement
>      */
>     private Statement statement = null;
98c112
<     private File inputFile = null;
---
>     private File srcFile = null;
108,109c122,123
<     public void setInputfile(File inputFile) {
<         this.inputFile = inputFile;
---
>     public void setSrc(File srcFile) {
>         this.srcFile = srcFile;
115c129
<     public void setSQL(String sql) {
---
>     public void addText(String sql) {
147a162,168
>      * Set the autocommit flag for the DB connection.
>      */
>     public void setAutocommit(boolean autocommit) {
>         this.autocommit = autocommit;
>     }
>     
>     /**
151d171
<         Connection conn = null;
153c173
<         if (inputFile == null && sqlCommand == null) {
---
>         if (srcFile == null && sqlCommand == null) {
168,169c188,189
<         if (inputFile != null && !inputFile.exists()) {
<             throw new BuildException("Input file does not exist!");
---
>         if (srcFile != null && !srcFile.exists()) {
>             throw new BuildException("Source file does not exist!");
178,180d197
<         String line = "";
<         String sql = "";
<         Statement statement = null;
184a202,203
> 	    conn.setAutoCommit(autocommit);
> 
188c207
<                 execSQL(statement, sqlCommand);
---
>                 runStatements(new StringReader(sqlCommand));
191,192c210,211
<             if (inputFile != null) {
<                 BufferedReader in = new BufferedReader(new
FileReader(inputFile));
---
>             if (srcFile != null) {
>                 runStatements(new FileReader(srcFile));
194,204d212
<                 while ((line=in.readLine()) != null){
<                     if (line.trim().startsWith("//")) continue;
<                     if (line.trim().startsWith("--")) continue;
<  
<                     sql += " " + line;
<                     if (sql.trim().endsWith(";")){
<                         log("SQL: " + sql, Project.MSG_VERBOSE);
<                         execSQL(statement, sql.substring(0,
sql.length()-1));
<                         sql = "";
<                     }
<                 }
211d218
<             log("Failed to execute: " + sql, Project.MSG_ERR);
228a236,264
>     private void runStatements(Reader reader) throws SQLException,
IOException {
>         String sql = "";
>         String line = "";
> 
> 	BufferedReader in = new BufferedReader(reader);
> 
> 	try{
>             while ((line=in.readLine()) != null){
>                 if (line.trim().startsWith("//")) continue;
>                 if (line.trim().startsWith("--")) continue;
>      
>                 sql += " " + line;
>                 if (sql.trim().endsWith(";")){
>                      log("SQL: " + sql, Project.MSG_VERBOSE);
>                      execSQL(sql.substring(0, sql.length()-1));
>                      sql = "";
>                 }
>             }
> 
> 	    // Catch any statements not followed by ;
> 	    if(!sql.trim().equals("")){
> 	    	execSQL(sql);
> 	    }
> 	}catch(SQLException e){
>             log("Failed to execute: " + sql, Project.MSG_ERR);
> 	    throw e;
> 	}
>     }
> 
232c268
<     private void execSQL(Statement statement, String sql) throws
SQLException{
---
>     private void execSQL(String sql) throws SQLException{
235a272,278
> 
> 	    SQLWarning warning = conn.getWarnings();
>             while(warning!=null){
> 	    	log(warning + " sql warnging", Project.MSG_VERBOSE);
> 		warning=warning.getNextWarning();
> 	    }
> 	    conn.clearWarnings();


Mime
View raw message