本文主要是介绍Error setting null for parameter #10 with JdbcType OTHER .,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天写了一个mybatis的sql语句,每个字段都没有写对应的jdbcType,印象中自己从来没有写过这个type。
今天竟然出现了问题,问题如下,查了资料说了,是因为如果传入的值为null,mybatis无法匹配,所以,写上了,问题解决。
下面的解决办法是网络查找的。做个记录备忘。
适配oracle数据库的时候,mybatis报了Error setting null parameter,bug发现是参数出现了null值,对于Mybatis,如果进行操作的时候,没有指定jdbcType类型的参数,就可能导致问题。
postgreSQL,MySQL,SQLSERVER都支持JdbcType.NULL类型,Oracle是不支持,适配的时候也因为这个问题导致mybatis报错。
比如,之前配置#{submitDate},它会在oracle中报错:Error settingnull parameter
更改成#{submitDate,jdbcType=DATE},注意jdbcType是区分大小写的。
看网上说可以是settings文件中做个设置,可以不用写jdbcType,有网友说无效,因为本人的是springboot项目,不知道在哪里配置,所以不知道第二种方式是否有效。
mybatis 插入空值時需要指定jdbcType
报错内容:
### Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #10 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 无效的列类型
MyBatis 插入空值时,需要指定JdbcType
mybatis insert空值报空值异常,但是在pl/sql不会提示错误,主要原因是mybatis无法进行转换,
解决方法:
在insert语句中,增加jdbcType解决问题
<insert id="save" parameterType="Province">
<![CDATA[
insert into t_yp_province
(fid,fname,fnumber,fsimpleName,fdescription,fcreateTime,flastUpdateTime,fdirect)
values
( #{id,jdbcType=VARCHAR},
#{name,jdbcType=VARCHAR},
#{number,jdbcType=VARCHAR},
#{simpleName,jdbcType=VARCHAR},
#{description,jdbcType=VARCHAR},
#{createTime,jdbcType=DATE},
#{lastUpdateTime,jdbcType=DATE},
#{direct,jdbcType=NUMERIC}
)
]]>
</insert>;
这篇关于Error setting null for parameter #10 with JdbcType OTHER .的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!