Author: cbegin
Date: Fri Jun 5 04:25:10 2009
New Revision: 781909
URL: http://svn.apache.org/viewvc?rev=781909&view=rev
Log:
fixed migration generated key support bug
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/SqlRunner.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/CommandLine.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/jdbc/SqlRunnerTest.java
ibatis/trunk/java/ibatis-3/version.properties
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/SqlRunner.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/SqlRunner.java?rev=781909&r1=781908&r2=781909&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/SqlRunner.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/SqlRunner.java
Fri Jun 5 04:25:10 2009
@@ -11,15 +11,15 @@
private Connection connection;
private TypeHandlerRegistry typeHandlerRegistry;
- private boolean forceGeneratedKeySupport;
+ private boolean useGeneratedKeySupport;
public SqlRunner(Connection connection) {
this.connection = connection;
this.typeHandlerRegistry = new TypeHandlerRegistry();
}
- public void setForceGeneratedKeySupport(boolean forceGeneratedKeySupport) {
- this.forceGeneratedKeySupport = forceGeneratedKeySupport;
+ public void setUseGeneratedKeySupport(boolean useGeneratedKeySupport) {
+ this.useGeneratedKeySupport = useGeneratedKeySupport;
}
/**
@@ -71,7 +71,7 @@
*/
public int insert(String sql, Object... args) throws SQLException {
PreparedStatement ps;
- if (forceGeneratedKeySupport ||
connection.getMetaData().supportsGetGeneratedKeys()) {
+ if (useGeneratedKeySupport) {
ps = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
} else {
ps = connection.prepareStatement(sql);
@@ -80,13 +80,20 @@
try {
setParameters(ps, args);
ps.executeUpdate();
- if (forceGeneratedKeySupport ||
connection.getMetaData().supportsGetGeneratedKeys()) {
+ if (useGeneratedKeySupport) {
List<Map<String, Object>> keys = getResults(ps.getGeneratedKeys());
if (keys.size() == 1) {
Map<String, Object> key = keys.get(0);
Iterator i = key.values().iterator();
if (i.hasNext()) {
- return Integer.parseInt(i.next().toString());
+ Object genkey = i.next();
+ if (genkey != null) {
+ try {
+ return Integer.parseInt(genkey.toString());
+ } catch (NumberFormatException e) {
+ //ignore, no numeric key suppot
+ }
+ }
}
}
}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/CommandLine.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/CommandLine.java?rev=781909&r1=781908&r2=781909&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/CommandLine.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/CommandLine.java
Fri Jun 5 04:25:10 2009
@@ -12,6 +12,7 @@
private static final String PATH_PREFIX = "--path=";
private static final String ENV_PREFIX = "--env=";
private static final String FORCE = "--force";
+ private static final String TRACE = "--trace";
private static final String HELP = "--help";
private static final String INIT = "init";
@@ -28,6 +29,7 @@
private File repository;
private String environment;
private boolean force;
+ private boolean trace;
private String command;
private String params;
@@ -51,8 +53,10 @@
try {
runCommand();
} catch (MigrationException e) {
- out.println("ERROR: " + e.getMessage());
- printUsage();
+ out.println("\nERROR: " + e.getMessage());
+ if (trace) {
+ e.printStackTrace();
+ }
}
}
} finally {
@@ -86,6 +90,8 @@
repository = new File(arg.split("=")[1]);
} else if (arg.startsWith(ENV_PREFIX) && arg.length() >
ENV_PREFIX.length()) {
environment = arg.split("=")[1];
+ } else if (arg.startsWith(TRACE)) {
+ trace = true;
} else if (arg.startsWith(FORCE)) {
force = true;
} else if (arg.startsWith(HELP)) {
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/jdbc/SqlRunnerTest.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/jdbc/SqlRunnerTest.java?rev=781909&r1=781908&r2=781909&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/jdbc/SqlRunnerTest.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/jdbc/SqlRunnerTest.java
Fri Jun 5 04:25:10 2009
@@ -38,7 +38,7 @@
runScript(ds, BLOG_DDL);
Connection connection = ds.getConnection();
SqlRunner exec = new SqlRunner(connection);
- exec.setForceGeneratedKeySupport(true);
+ exec.setUseGeneratedKeySupport(true);
int id = exec.insert("INSERT INTO author (username, password, email, bio)
VALUES (?,?,?,?)", "someone", "******", "[email protected]", Null.LONGVARCHAR);
Map row = exec.selectOne("SELECT * FROM author WHERE username = ?",
"someone");
connection.rollback();
Modified: ibatis/trunk/java/ibatis-3/version.properties
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/version.properties?rev=781909&r1=781908&r2=781909&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/version.properties (original)
+++ ibatis/trunk/java/ibatis-3/version.properties Fri Jun 5 04:25:10 2009
@@ -1,5 +1,5 @@
#Build version info
-#Sun May 31 14:31:22 MDT 2009
+#Thu Jun 04 22:14:44 MDT 2009
version=3.0.0
-buildDate=2009/05/31 14\:31
-buildNum=162
+buildDate=2009/06/04 22\:14
+buildNum=168