前言

  下面是我在工作中遇到Mybatis的相关异常,可能不全,但是也可以参考一下,如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!

一、Mybatis异常总结

1、 Error evaluating expression ‘’’’. Return value () was not iterable

出现原因:xml文件中遍历List 时,该参数的实际值为非List数据。


2、 invalid comparison: java.util.ArrayList and java.lang.String

出现原因:因为params.Ids !=""'造成集合和字符串类型的比较,故报错

<if test='params.Ids != null and params.Ids !=""'>
   and o.gen_id in
   <foreach collection="params.Ids" index="index"  item="Id" open="(" separator="," close=")">
      #{Id}
   </foreach>
 </if>

解决:改成 params.genIds.size() > 0


3、ORA-00918:未明确定义列

出现原因:列名重复或者没明确属于那种表


4、‘params.memberId != null and params.memberId != “”’. Cause: org.apache.ibatis.ognl.NoSuchPropertyException:

出现原因:这个错误时由于Mybatis封装的空指针异常,当没有传入条件时,params这个对象即为空,而进行条件判断params.memberId,自然会报空指针。

解决:方法是再加一层判断,先判断params是不是空:
或者 没有memberId这个变量。


5、Caused by: oracle.jdbc.OracleDatabaseException: ORA-00904: “P”.“FFF”: 标识符无效

出现原因:没有该字段


6、org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.yzy.shanxi.yzy.interprovincial.dayago.mapper.InterPlDayAgoMapper.queryData

出现原因:mapper 文件的方法名,在对应的xml中无该方法名


7、bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00936: 缺失表达式

出现原因:sql 字段区域 有问题

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐