【实力踩坑】Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter

文章讲述了在使用ApacheMyBatis查询数据库时遇到的TypeException错误,原因是错误地设置了非空参数。问题出在SQL中的注释格式,多行注释导致解析错误。作者提醒读者注意XML配置中的单行或多行注释的区别,以避免此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查询数据库报错如下:

Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #7 with JdbcType

定位到报错 SQL处:

<!-- 公用查询排序条件:单票 -->
  <sql id="Common_Order_Condition">
    <if test="orderField != null and orderField != '' and orderType != null and (runInHole == null or runInHole == false)">
      /*order by concat('t.', #{orderField})*/
      order by #{orderField}
      <include refid="Order_Type_Column"/>
    </if>
  </sql>

乍一看没啥问题,运行就是报错,无用代码也已经注释了,最后找了各种方法才发现,注释的格式不对,在 if 语句中切忌不能使用文档注释格式,要使用单行或多行格式注释:

<!-- 公用查询排序条件:单票 -->
  <sql id="Common_Order_Condition">
    <if test="orderField != null and orderField != '' and orderType != null and (runInHole == null or runInHole == false)">
      <!-- order by concat('t.', #{orderField}) -->
      order by #{orderField}
      <include refid="Order_Type_Column"/>
    </if>
  </sql>

在这里插入图片描述
这样就可以了,xml 的坑,又踩了一遍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Commit日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值