You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2007/02/26 19:07:03 UTC

svn commit: r511936 - /ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/jdbc/ScriptRunner.java

Author: cbegin
Date: Mon Feb 26 10:07:02 2007
New Revision: 511936

URL: http://svn.apache.org/viewvc?view=rev&rev=511936
Log:
Added delimiter configuration for ScriptRunner to support things like SQL Server's "GO" delimiter.

Modified:
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/jdbc/ScriptRunner.java

Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/jdbc/ScriptRunner.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/jdbc/ScriptRunner.java?view=diff&rev=511936&r1=511935&r2=511936
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/jdbc/ScriptRunner.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/jdbc/ScriptRunner.java Mon Feb 26 10:07:02 2007
@@ -29,8 +29,7 @@
  */
 public class ScriptRunner {
 
-  //private static final Log log = LogFactory.getLog(ScriptRunner.class);
-
+  private static final String DEFAULT_DELIMITER = ";";
 
   private Connection connection;
   private String driver;
@@ -44,6 +43,9 @@
   private PrintWriter logWriter = new PrintWriter(System.out);
   private PrintWriter errorLogWriter = new PrintWriter(System.err);
 
+  private String delimiter = DEFAULT_DELIMITER;
+  private boolean fullLineDelimiter = false;
+
   /**
    * Default constructor
    */
@@ -53,6 +55,11 @@
     this.stopOnError = stopOnError;
   }
 
+  public void setDelimiter(String delimiter, boolean fullLineDelimiter) {
+    this.delimiter = delimiter;
+    this.fullLineDelimiter = fullLineDelimiter;
+  }
+
   public ScriptRunner(String driver, String url, String username, String password, boolean autoCommit, boolean stopOnError) {
     this.driver = driver;
     this.url = url;
@@ -143,8 +150,9 @@
           //Do nothing
         } else if (trimmedLine.length() < 1 || trimmedLine.startsWith("--")) {
           //Do nothing
-        } else if (trimmedLine.endsWith(";")) {
-          command.append(line.substring(0, line.lastIndexOf(";")));
+        } else if (!fullLineDelimiter && trimmedLine.endsWith(getDelimiter())
+            || fullLineDelimiter && trimmedLine.equals(getDelimiter())) {
+          command.append(line.substring(0, line.lastIndexOf(getDelimiter())));
           command.append(" ");
           Statement statement = conn.createStatement();
 
@@ -214,6 +222,10 @@
       conn.rollback();
       flush();
     }
+  }
+
+  private String getDelimiter() {
+    return delimiter;
   }
 
   private void print(Object o) {