一个是对应代码中的数据类型(javatype),另一个是对应数据库中的数据类型(jdbctype).

解决方案 »

  1.   

    ibatis会试图去转换你告诉它的类型
      

  2.   

    ibatis会根据你指定的类型,用相应的转换器来转换成对应的类型。
      

  3.   

    那具体的转换方法 我们如何设置,还是的通过其他工具比如 数据类型(javatype)为 int   值为“1”
        转换为 数据库中的数据类型(jdbctype) string 我希望 转换为 “SS”可以实现吗?
      

  4.   

    当然是可以的,首先写一个TypeHandlerCallback
     public class SampleTypeHandlerCallback implements TypeHandlerCallback {
     
    public Object getResult(ResultGetter getter) throws SQLException { 
       String s = getter.getString(); 
       if ("SS".equals(s)) {
         return new Integer(1); 
       }else { 
         throw new SQLException ("Unexpected value " + s ); 
      } 
    }public void setParameter(ParameterSetter setter, Object parameter) throws SQLException { 
       int b = ((Integer)parameter).intValue(); 
       if (b==1) {
         setter.setString("SS"); 
       } 

    <!ATTLIST result
    property CDATA #REQUIRED
    javaType CDATA #IMPLIED
    column CDATA #IMPLIED
    columnIndex CDATA #IMPLIED
    jdbcType CDATA #IMPLIED
    nullValue CDATA #IMPLIED
    select CDATA #IMPLIED
    resultMap CDATA #IMPLIED
    typeHandler CDATA #IMPLIED
    ><!ELEMENT parameter EMPTY>
    <!ATTLIST parameter
    property CDATA #REQUIRED
    javaType CDATA #IMPLIED
    jdbcType CDATA #IMPLIED
    typeName CDATA #IMPLIED
    nullValue CDATA #IMPLIED
    mode (IN | OUT | INOUT) #IMPLIED
    typeHandler CDATA #IMPLIED
    resultMap CDATA #IMPLIED
    numericScale CDATA #IMPLIED
    >
    在这两个元素的typeHandler属性里写上对应的TypeHandlerCallback