• Cause: java.sql.SQLException: 无效的列类型: 1111


    1.情景展示

    使用mybatis给Oracle表插入数据的时候,报错信息如下:

    org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='VERCODE', mode=IN, javaType=class java.lang.Object, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #6 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 无效的列类型: 1111

    2.具体分析

    我们知道,在SQL语句当中,如果我们在执行插入的时候,指定了某个字段,但并没有给值的情况下;

    默认情况下,在插入数据时,该字段值为NULL(也就是没有给这个字段赋值)。

    3.解决方案

    为参数指定数据类型。

    在xml里加上对应的数据类型:如下,这里我的是字符串,加:jdbcType=VARCHAR

    再次执行,SQL语句输出如下:

    插入成功。

    同样地,如果需要将字段值更新为null的话,也需要加上。

    <update id="updateJkdaUser" parameterType="hashmap">
        UPDATE JKDA_USER SET VERCODE=#{VERCODE,jdbcType=VARCHAR} WHERE TELPHONE=#{TELPHONE}
    </update>

     

    写在最后

      哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

     相关推荐:

  • 相关阅读:
    OAuth客户端调用
    OAuth中client id的处理
    Task作为返回值以及Task<TResult>作为返回值
    Netscaler立身之本—NAT
    Citrix Netscaler负载均衡算法
    Netscaler重置密码的方法
    Netscaler的超高端口复用助力应对公网地址紧张
    Netscaler工作流程
    深入理解Netscaler INat
    Citrix Netscaler版本管理和选择
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/16327024.html
Copyright © 2020-2023  润新知