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 2010/02/12 15:08:11 UTC

svn commit: r909414 - in /ibatis/java/ibatis-3/trunk: doc/en/ ibatis-3-core/src/main/java/org/apache/ibatis/builder/ ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/ ibatis-3-core/src/main/java/org/apache/ibatis/mapping/ ibatis-3-core/...

Author: cbegin
Date: Fri Feb 12 14:08:10 2010
New Revision: 909414

URL: http://svn.apache.org/viewvc?rev=909414&view=rev
Log:
Fixed IBATIS-741 STRUCT is not supported and callable statements does not support structured sql types as out parameters.

Modified:
    ibatis/java/ibatis-3/trunk/doc/en/iBATIS-3-User-Guide.doc
    ibatis/java/ibatis-3/trunk/doc/en/iBATIS-3-User-Guide.pdf
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/SqlSourceBuilder.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/CallableStatementHandler.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/ParameterMapping.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/JdbcType.java

Modified: ibatis/java/ibatis-3/trunk/doc/en/iBATIS-3-User-Guide.doc
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/doc/en/iBATIS-3-User-Guide.doc?rev=909414&r1=909413&r2=909414&view=diff
==============================================================================
Binary files - no diff available.

Modified: ibatis/java/ibatis-3/trunk/doc/en/iBATIS-3-User-Guide.pdf
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/doc/en/iBATIS-3-User-Guide.pdf?rev=909414&r1=909413&r2=909414&view=diff
==============================================================================
Binary files - no diff available.

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/SqlSourceBuilder.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/SqlSourceBuilder.java?rev=909414&r1=909413&r2=909414&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/SqlSourceBuilder.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/SqlSourceBuilder.java Fri Feb 12 14:08:10 2010
@@ -79,6 +79,8 @@
             builder.resultMapId(value);
           } else if ("typeHandler".equals(name)) {
             builder.typeHandler((TypeHandler) resolveInstance(value));
+          } else if ("jdbcTypeName".equals(name)) {
+            builder.jdbcTypeName(value);
           }
         } else {
           throw new BuilderException("Improper inline parameter map format.  Should be: #{propName,attr1=val1,attr2=val2}");

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/CallableStatementHandler.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/CallableStatementHandler.java?rev=909414&r1=909413&r2=909414&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/CallableStatementHandler.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/CallableStatementHandler.java Fri Feb 12 14:08:10 2010
@@ -74,7 +74,11 @@
           if (parameterMapping.getNumericScale() != null && (parameterMapping.getJdbcType() == JdbcType.NUMERIC || parameterMapping.getJdbcType() == JdbcType.DECIMAL)) {
             cs.registerOutParameter(i + 1, parameterMapping.getJdbcType().TYPE_CODE, parameterMapping.getNumericScale());
           } else {
-            cs.registerOutParameter(i + 1, parameterMapping.getJdbcType().TYPE_CODE);
+            if (parameterMapping.getJdbcTypeName() == null) {
+              cs.registerOutParameter(i + 1, parameterMapping.getJdbcType().TYPE_CODE);
+            } else {
+              cs.registerOutParameter(i + 1, parameterMapping.getJdbcType().TYPE_CODE, parameterMapping.getJdbcTypeName());
+            }
           }
         }
       }

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/ParameterMapping.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/ParameterMapping.java?rev=909414&r1=909413&r2=909414&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/ParameterMapping.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/ParameterMapping.java Fri Feb 12 14:08:10 2010
@@ -16,6 +16,7 @@
   private Integer numericScale;
   private TypeHandler typeHandler;
   private String resultMapId;
+  private String jdbcTypeName;
 
   private ParameterMapping() {
   }
@@ -67,6 +68,11 @@
       return this;
     }
 
+    public Builder jdbcTypeName(String jdbcTypeName) {
+      parameterMapping.jdbcTypeName = jdbcTypeName;
+      return this;
+    }
+
     public ParameterMapping build() {
       resolveTypeHandler();
       return parameterMapping;
@@ -113,4 +119,8 @@
     return resultMapId;
   }
 
+  public String getJdbcTypeName() {
+    return jdbcTypeName;
+  }
+	
 }

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/JdbcType.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/JdbcType.java?rev=909414&r1=909413&r2=909414&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/JdbcType.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/JdbcType.java Fri Feb 12 14:08:10 2010
@@ -31,9 +31,10 @@
   BOOLEAN(Types.BOOLEAN),
   CURSOR(-10), // Oracle
   UNDEFINED(Integer.MIN_VALUE + 1000),
-  NVARCHAR(-9),
-  NCHAR(-15),
-  NCLOB(2011);
+  NVARCHAR(-9), // JDK6
+  NCHAR(-15), // JDK6
+  NCLOB(2011), // JDK6
+  STRUCT(Types.STRUCT);
 
   public final int TYPE_CODE;
   private static Map<Integer,JdbcType> codeLookup = new HashMap<Integer,JdbcType>();