Mybatis 报无效的列类型 两种解决办法
博客专区 > 耀子 的博客 > 博客详情
Mybatis 报无效的列类型 两种解决办法
耀子 发表于2年前
Mybatis 报无效的列类型 两种解决办法
  • 发表于 2年前
  • 阅读 12234
  • 收藏 5
  • 点赞 3
  • 评论 2

腾讯云 技术升级10大核心产品年终让利>>>   

最近忙,好久没来写博文了,惭愧。今天遇到如题的问题,就是在mybatis 插入oracle数据库空值的报的异常:   org.springframework.jdbc.UncategorizedSQLException: Error setting null parameter.  Most JDBC drivers require that the JdbcType must be specified for all nullable parameters. Cause: java.sql.SQLException: Invalid column type ; uncategorized SQLException for SQL []; SQL state [null]; error code [17004]; Invalid column type; nested exception is java.sql.SQLException: Invalid column type

开始sql是这样写的insert into user(id,name) values(#{id},#{name}) 

解决方法:

一、指定插入值得jdbcType,将sql改成 insert into user(id,name) values(#{id,jdbcType=VARCHAR},#{name,jdbcType=VARCHAR}) 


二、在mybatis-config.xml文件中配置一下,添加settings配置,如下:(推荐)

<configuration>

......

<settings>

    <setting name="jdbcTypeForNull" value="NULL" />

</settings>

......

</configuration>

问题解决,继续码码,希望常来写博文,共同学习~~~

标签: Mybatis Java
共有 人打赏支持
粉丝 7
博文 28
码字总数 3701
评论 (2)
安小乐
你好,请问,是不是写成#{id,jdbcType=VARCHAR}这种格式,(也就是加上jdbcType=VARCHAR)就算id的值为null,mybatis也不会把这个字段拼到sql语句给数据库执行呢?
安小乐
我也是遇到了这个错。我加上jdbcType=VARCHAR后,就不报错了。
×
耀子
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: