Author: cbegin Date: Sat Jan 23 22:55:22 2010 New Revision: 902504 URL: http://svn.apache.org/viewvc?rev=902504&view=rev Log: IBATIS-728 Problem when a script is written in a different encode than the default
Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/ScriptRunner.java ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/ScriptRunner.java URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/ScriptRunner.java?rev=902504&r1=902503&r2=902504&view=diff ============================================================================== --- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/ScriptRunner.java (original) +++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/ScriptRunner.java Sat Jan 23 22:55:22 2010 @@ -3,6 +3,7 @@ import java.io.BufferedReader; import java.io.PrintWriter; import java.io.Reader; +import java.io.UnsupportedEncodingException; import java.sql.*; public class ScriptRunner { @@ -20,11 +21,16 @@ private String delimiter = DEFAULT_DELIMITER; private boolean fullLineDelimiter = false; + private String characterSetName; public ScriptRunner(Connection connection) { this.connection = connection; } + public void setCharacterSetName(String characterSetName) { + this.characterSetName = characterSetName; + } + public void setStopOnError(boolean stopOnError) { this.stopOnError = stopOnError; } @@ -149,7 +155,7 @@ } } - private StringBuffer handleLine(StringBuffer command, String line) throws SQLException { + private StringBuffer handleLine(StringBuffer command, String line) throws SQLException, UnsupportedEncodingException { String trimmedLine = line.trim(); if (lineIsComment(trimmedLine)) { println(trimmedLine); @@ -175,7 +181,10 @@ || fullLineDelimiter && trimmedLine.equals(delimiter); } - private void executeStatement(String command) throws SQLException { + private void executeStatement(String command) throws SQLException, UnsupportedEncodingException { + if(characterSetName != null){ + command = new String(command.getBytes(), characterSetName); + } boolean hasResults = false; Statement statement = connection.createStatement(); if (stopOnError) { Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java?rev=902504&r1=902503&r2=902504&view=diff ============================================================================== --- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java (original) +++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java Sat Jan 23 22:55:22 2010 @@ -191,10 +191,12 @@ String url = props.getProperty("url"); String username = props.getProperty("username"); String password = props.getProperty("password"); + String charSetName = props.getProperty("script_char_set"); PrintWriter outWriter = new PrintWriter(out); UnpooledDataSource dataSource = new UnpooledDataSource(driverClassLoader, driver, url, username, password); dataSource.setAutoCommit(false); ScriptRunner scriptRunner = new ScriptRunner(dataSource.getConnection()); + scriptRunner.setCharacterSetName(charSetName); scriptRunner.setStopOnError(!force); scriptRunner.setLogWriter(outWriter); scriptRunner.setErrorLogWriter(outWriter); Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties?rev=902504&r1=902503&r2=902504&view=diff ============================================================================== --- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties (original) +++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties Sat Jan 23 22:55:22 2010 @@ -1,6 +1,9 @@ ## Base time zone to ensure times are consistent across machines time_zone=GMT+0:00 +## The character set that scripts are encoded with +# script_char_set=UTF-8 + ## JDBC connection properties. driver= url=