在使用MyBatis的过程中经常会碰到Invalid bound statement (not found)的错误,引发这个错误的原因很多,汇总如下,以待后用。
最佳解决方案
比如DAO层定义的方法是:
public bool update(@Param("id")Int id);
mapper.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="xxx.Mapper"> <!-- 删除数据 --> <edit id="edit" parameterType="java.lang.String"> Update TBLName Set Status=0 WHERE id=#{id} </edit > </mapper>
mybaits一般要求 id=“方法名” 和 parameterType定义的参数类型必须和DAO层完全一致才可以,如上肯定报错。方法名和参数但凡有一个匹配不上都会报错。