You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ibatis.apache.org by "Mark Thomas (JIRA)" <ib...@incubator.apache.org> on 2005/05/04 21:27:05 UTC

[jira] Created: (IBATIS-121) support for database object type in IN/OUT parameters to stored procs

support for database object type in IN/OUT parameters to stored procs
---------------------------------------------------------------------

         Key: IBATIS-121
         URL: http://issues.apache.org/jira/browse/IBATIS-121
     Project: iBatis for Java
        Type: Improvement
  Components: SQL Maps  
    Versions: 2.0.8, 2.0.9, 2.0.9b, 2.1.0, 2.1.1, 2.1.2    
    Reporter: Mark Thomas
    Priority: Minor


Currently, when registering an parameter to be sent/retrieved from a stored procedure, there is no way to specify the database object type.  I am proposing an extension to BasicParameterMapping to support a "databaseType" parameter and a change to the method registerOutputParameters in SqlExecutor.  This method is currently as follows:

private void registerOutputParameters(CallableStatement cs, ParameterMapping[] mappings) throws SQLException {
    for (int i = 0; i < mappings.length; i++) {
      BasicParameterMapping mapping = ((BasicParameterMapping) mappings[i]);
      if (mapping.isOutputAllowed()) {
        cs.registerOutParameter(i + 1, mapping.getJdbcType());
      }
    }
  }

I would like it to look like this:

private void registerOutputParameters(CallableStatement cs, ParameterMapping[] mappings) throws SQLException {
    for (int i = 0; i < mappings.length; i++) {
      BasicParameterMapping mapping = ((BasicParameterMapping) mappings[i]);
      if (mapping.isOutputAllowed()) {
        if(mapping.getDatabaseType() != null) {
           cs.registerOutParameter(i + 1, mapping.getJdbcType(), mapping.getDatabaseType());
        } else {
           cs.registerOutParameter(i + 1, mapping.getJdbcType());
        }
      }
    }
  }

With these changes, iBATIS can handle returning Arrays, Structs, and even Java objects from databases (specifically Oracle) using TypeHandlers.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira