广告
返回顶部
首页 > 资讯 > 后端开发 > Python >mybatis接口绑定失效的解决
  • 924
分享到

mybatis接口绑定失效的解决

2024-04-02 19:04:59 924人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录mybatis接口绑定失效原因:小结一下mybatis接口绑定方法实现方法在XML中传递参数mybatis接口绑定失效 出现错误: org.apache.ibatis.bind

mybatis接口绑定失效

出现错误:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

解释:这是mybatis所报的异常,意思是接口绑定失效

原因:

1.项目编译完成后mapper接口和mybatis的xml不在同一个目录下导致接口绑定失败。

2.如果是Maven工程,使用idea编辑工程,会出现xml文件无法被编译到target当中,这种情况有两种解决,首先将和mapper接口在一起的xml文件放在resources文件夹下,这种情况下需要将xml文件所在的包名改成和mapper所在包名一致,还有一种情况就是在pom文件中将xml文件所在的目录标记为资源路径。

3.配置文件的路径写的有问题,在spring整合mybatis配置中指定mybatis的xml路径出错尤其注意如果如果resources包下和java包下路径相同一定要在路径前加classpath:来区别两者的不同,不然也会出现接口绑定失效的问题。

4.mybatis的xml文件中标签的namespace和对应mapper接口的全限定类名(包名+类名,不含类的后缀名)不一致

5.mybatis的xml文件中标签的id与对应mapper接口中的方法名不一致

与对应mapper接口中的方法名不一致**

小结一下

大体总结为mapper接口和xml之间关联出错,还有就是配置文件对xml所在文件路径指定错误,最后就是在编译后mapper接口和mybatis的xml不在同一个文件夹中。

mybatis接口绑定方法

通常情况下,使用Mapper.xml是无法实现多个参数的传递,除非传入Map或者是对象,这个时候我们就可以使用接口绑定的方法传入多个参数,

实现方法

第一步:创建一个与XML包名,类名完全相同的接口,包名类名即XML中配置的namespace

第二步:创建一个与XML中ID相同的方法,然后设置参数,


public interface LogMapper {
List<Log> selAll();
}

第三步:在 mybatis.xml 中使用<package>进行扫描接口和 mapper.xml


<mappers>
<package name="com.bjsxt.mapper"/>
</mappers>

在XML中传递参数

因为有多个参数,所以在XML中参数的返回值可以不用写, 但是在传参的时候。

第一种方法:可以在sql语句中加入#{0} #{param1}就可以传递参数

第二种方法: 使用注解传递参数,

第一步 : 在函数的参数前添加注解


List<Log> selByAccInAccout(@Param("accin") String
accin123,@Param("accout") String accout3454235);

第二步: #{} 里面写@Param(“内容”)参数中


<!-- 当多参数时,不需要写 parameterType -->
<select id="selByAccInAccout" resultType="log" >
select * from log where accin=#{accin} and
accout=#{accout}
</select>

这就相当于是系统底层给我们也注释中写的字符串为Key 以形参为value 形成一个key然后传递给XML 这就实现了多个参数的传递

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: mybatis接口绑定失效的解决

本文链接: https://www.lsjlt.com/news/158492.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作