org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题,即在mybatis中dao接口与mapper配置文件在做映射绑定的时候出现问题,简单说,就是接口与xml要么是找不到,要么是找到了却匹配不到。
Mapper接口开发需要遵循以下规范:
-
Mapper.xml文件中的namespace与mapper接口的类路径相同。
-
Mapper接口方法名和Mapper.xml中定义的每个statement的id相同
-
Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同
-
Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同
找了一上午,原来我报的错都不是这些导致的我在创建xml文件夹的时候是com.xxx.xxx.xml这样创建的,然而编译器他认为这是一整个文件夹,在编译的时候会在taget里面创建这样一个文件夹把xml文件放入而不是一级一级的创建目录,跟classes同级。 创建com/xxx/xxx.xml以这样的方式创建编译之后会在classes里一级一级的创建目录, 遮掩就没有问题啦!