Author: cbegin
Date: Mon May 18 19:30:13 2009
New Revision: 776060
URL: http://svn.apache.org/viewvc?rev=776060&view=rev
Log:
Refactored KeyGenerator API
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/NoKeyGenerator.java
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationParser.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLStatementParser.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BatchExecutor.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/Jdbc3KeyGenerator.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/KeyGenerator.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/SelectKeyGenerator.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/CallableStatementHandler.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/PreparedStatementHandler.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/SimpleStatementHandler.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/MappedStatement.java
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationParser.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationParser.java?rev=776060&r1=776059&r2=776060&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationParser.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationParser.java
Mon May 18 19:30:13 2009
@@ -178,7 +178,7 @@
ResultSetType resultSetType = ResultSetType.FORWARD_ONLY;
SqlCommandType sqlCommandType = getSqlCommandType(method);
KeyGenerator keyGenerator = configuration.isUseGeneratedKeys()
- && SqlCommandType.INSERT.equals(sqlCommandType) ? new
Jdbc3KeyGenerator() : null;
+ && SqlCommandType.INSERT.equals(sqlCommandType) ? new
Jdbc3KeyGenerator() : new NoKeyGenerator();
String keyProperty = "id";
if (options != null) {
flushCache = options.flushCache();
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLStatementParser.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLStatementParser.java?rev=776060&r1=776059&r2=776060&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLStatementParser.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLStatementParser.java
Mon May 18 19:30:13 2009
@@ -52,7 +52,7 @@
} else {
keyGenerator = context.getBooleanAttribute("useGeneratedKeys",
configuration.isUseGeneratedKeys() &&
SqlCommandType.INSERT.equals(sqlCommandType))
- ? new Jdbc3KeyGenerator() : null;
+ ? new Jdbc3KeyGenerator() : new NoKeyGenerator();
}
sequentialBuilder.statement(id, sqlSource, statementType, sqlCommandType,
fetchSize, timeout, parameterMap, parameterTypeClass,
@@ -115,7 +115,7 @@
//defaults
boolean useCache = false;
- KeyGenerator keyGenerator = null;
+ KeyGenerator keyGenerator = new NoKeyGenerator();
Integer fetchSize = null;
Integer timeout = null;
boolean flushCache = false;
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BatchExecutor.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BatchExecutor.java?rev=776060&r1=776059&r2=776060&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BatchExecutor.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BatchExecutor.java
Mon May 18 19:30:13 2009
@@ -66,7 +66,7 @@
Object parameter = batchResult.getParameterObject();
KeyGenerator keyGenerator = ms.getKeyGenerator();
if (keyGenerator instanceof Jdbc3KeyGenerator) {
- keyGenerator.processGeneratedKeys(this, ms, stmt, parameter);
+ keyGenerator.processAfter(this, ms, stmt, parameter);
}
} catch (BatchUpdateException e) {
StringBuffer message = new StringBuffer();
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/Jdbc3KeyGenerator.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/Jdbc3KeyGenerator.java?rev=776060&r1=776059&r2=776060&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/Jdbc3KeyGenerator.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/Jdbc3KeyGenerator.java
Mon May 18 19:30:13 2009
@@ -9,15 +9,10 @@
public class Jdbc3KeyGenerator implements KeyGenerator {
- public boolean executeAfter() {
- return true;
+ public void processBefore(Executor executor, MappedStatement ms, Statement
stmt, Object parameter) {
}
- public boolean executeBefore() {
- return false;
- }
-
- public void processGeneratedKeys(Executor executor, MappedStatement ms,
Statement stmt, Object parameter) {
+ public void processAfter(Executor executor, MappedStatement ms, Statement
stmt, Object parameter) {
try {
final Configuration configuration = ms.getConfiguration();
final TypeHandlerRegistry typeHandlerRegistry =
configuration.getTypeHandlerRegistry();
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/KeyGenerator.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/KeyGenerator.java?rev=776060&r1=776059&r2=776060&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/KeyGenerator.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/KeyGenerator.java
Mon May 18 19:30:13 2009
@@ -7,10 +7,8 @@
public interface KeyGenerator {
- boolean executeBefore();
+ void processBefore(Executor executor, MappedStatement ms, Statement stmt,
Object parameter);
- boolean executeAfter();
-
- void processGeneratedKeys(Executor executor, MappedStatement ms, Statement
stmt, Object parameter);
+ void processAfter(Executor executor, MappedStatement ms, Statement stmt,
Object parameter);
}
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/NoKeyGenerator.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/NoKeyGenerator.java?rev=776060&view=auto
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/NoKeyGenerator.java
(added)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/NoKeyGenerator.java
Mon May 18 19:30:13 2009
@@ -0,0 +1,16 @@
+package org.apache.ibatis.executor.keygen;
+
+import org.apache.ibatis.executor.Executor;
+import org.apache.ibatis.mapping.MappedStatement;
+
+import java.sql.Statement;
+
+public class NoKeyGenerator implements KeyGenerator {
+
+ public void processBefore(Executor executor, MappedStatement ms, Statement
stmt, Object parameter) {
+ }
+
+ public void processAfter(Executor executor, MappedStatement ms, Statement
stmt, Object parameter) {
+ }
+
+}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/SelectKeyGenerator.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/SelectKeyGenerator.java?rev=776060&r1=776059&r2=776060&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/SelectKeyGenerator.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/keygen/SelectKeyGenerator.java
Mon May 18 19:30:13 2009
@@ -17,15 +17,19 @@
this.keyStatement = keyStatement;
}
- public boolean executeBefore() {
- return executeBefore;
+ public void processBefore(Executor executor, MappedStatement ms, Statement
stmt, Object parameter) {
+ if (executeBefore) {
+ processGeneratedKeys(executor, ms, stmt, parameter);
+ }
}
- public boolean executeAfter() {
- return !executeBefore;
+ public void processAfter(Executor executor, MappedStatement ms, Statement
stmt, Object parameter) {
+ if (!executeBefore) {
+ processGeneratedKeys(executor, ms, stmt, parameter);
+ }
}
- public void processGeneratedKeys(Executor executor, MappedStatement ms,
Statement stmt, Object parameter) {
+ private void processGeneratedKeys(Executor executor, MappedStatement ms,
Statement stmt, Object parameter) {
try {
final Configuration configuration = ms.getConfiguration();
if (parameter != null) {
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/CallableStatementHandler.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/CallableStatementHandler.java?rev=776060&r1=776059&r2=776060&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/CallableStatementHandler.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/CallableStatementHandler.java
Mon May 18 19:30:13 2009
@@ -22,9 +22,7 @@
int rows = cs.getUpdateCount();
Object parameterObject = boundSql.getParameterObject();
KeyGenerator keyGenerator = mappedStatement.getKeyGenerator();
- if (keyGenerator != null && keyGenerator.executeAfter()) {
- keyGenerator.processGeneratedKeys(executor, mappedStatement, cs,
parameterObject);
- }
+ keyGenerator.processAfter(executor, mappedStatement, cs, parameterObject);
resultSetHandler.handleOutputParameters(cs);
return rows;
}
@@ -54,9 +52,7 @@
public void parameterize(Statement statement) throws SQLException {
KeyGenerator keyGenerator = mappedStatement.getKeyGenerator();
- if (keyGenerator != null && keyGenerator.executeBefore()) {
- keyGenerator.processGeneratedKeys(executor, mappedStatement, statement,
boundSql.getParameterObject());
- }
+ keyGenerator.processBefore(executor, mappedStatement, statement,
boundSql.getParameterObject());
registerOutputParameters((CallableStatement) statement);
parameterHandler.setParameters((CallableStatement) statement);
}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/PreparedStatementHandler.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/PreparedStatementHandler.java?rev=776060&r1=776059&r2=776060&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/PreparedStatementHandler.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/PreparedStatementHandler.java
Mon May 18 19:30:13 2009
@@ -21,9 +21,7 @@
int rows = ps.getUpdateCount();
Object parameterObject = boundSql.getParameterObject();
KeyGenerator keyGenerator = mappedStatement.getKeyGenerator();
- if (keyGenerator != null && keyGenerator.executeAfter()) {
- keyGenerator.processGeneratedKeys(executor, mappedStatement, ps,
parameterObject);
- }
+ keyGenerator.processAfter(executor, mappedStatement, ps, parameterObject);
return rows;
}
@@ -53,10 +51,8 @@
public void parameterize(Statement statement)
throws SQLException {
- KeyGenerator keyGenerator = mappedStatement.getKeyGenerator();
- if (keyGenerator != null && keyGenerator.executeBefore()) {
- keyGenerator.processGeneratedKeys(executor, mappedStatement, statement,
boundSql.getParameterObject());
- }
+ KeyGenerator keyGenerator = mappedStatement.getKeyGenerator();
+ keyGenerator.processBefore(executor, mappedStatement, statement,
boundSql.getParameterObject());
parameterHandler.setParameters((PreparedStatement) statement);
}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/SimpleStatementHandler.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/SimpleStatementHandler.java?rev=776060&r1=776059&r2=776060&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/SimpleStatementHandler.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/SimpleStatementHandler.java
Mon May 18 19:30:13 2009
@@ -23,13 +23,11 @@
if (keyGenerator instanceof Jdbc3KeyGenerator) {
statement.execute(sql, Statement.RETURN_GENERATED_KEYS);
rows = statement.getUpdateCount();
- keyGenerator.processGeneratedKeys(executor, mappedStatement, statement,
parameterObject);
+ keyGenerator.processAfter(executor, mappedStatement, statement,
parameterObject);
} else if (keyGenerator instanceof SelectKeyGenerator) {
statement.execute(sql);
rows = statement.getUpdateCount();
- if (keyGenerator.executeAfter()) {
- keyGenerator.processGeneratedKeys(executor, mappedStatement,
statement, parameterObject);
- }
+ keyGenerator.processAfter(executor, mappedStatement, statement,
parameterObject);
} else {
statement.execute(sql);
rows = statement.getUpdateCount();
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/MappedStatement.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/MappedStatement.java?rev=776060&r1=776059&r2=776060&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/MappedStatement.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/MappedStatement.java
Mon May 18 19:30:13 2009
@@ -40,7 +40,7 @@
mappedStatement.timeout = configuration.getDefaultStatementTimeout();
mappedStatement.sqlCommandType = sqlCommandType;
mappedStatement.keyGenerator = configuration.isUseGeneratedKeys()
- && SqlCommandType.INSERT.equals(sqlCommandType) ? new
Jdbc3KeyGenerator() : null;
+ && SqlCommandType.INSERT.equals(sqlCommandType) ? new
Jdbc3KeyGenerator() : new NoKeyGenerator();
}
public Builder resource(String resource) {