mybatis接口绑定失效的解决

 更新时间:2021年11月26日 10:39:26   作者:张意的博客  
这篇文章主要介绍了mybatis接口绑定失效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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 这就实现了多个参数的传递

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java面试散列表及树所对应容器类及HashMap冲突解决全面分析

    java面试散列表及树所对应容器类及HashMap冲突解决全面分析

    这篇文章主要介绍了java面试中的java散列表及树所对应容器类与HashMap冲突解决的问题总结,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • Java定时任务:利用java Timer类实现定时执行任务的功能

    Java定时任务:利用java Timer类实现定时执行任务的功能

    本篇文章主要介绍了利用java Timer类实现定时执行任务的功能,具有一定的参考价值,有需要的可以了解一下。
    2016-11-11
  • SpringBoot 部署到服务器上的方法

    SpringBoot 部署到服务器上的方法

    下面小编就为大家分享一篇SpringBoot 部署到服务器上的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • spring注解在自定义jar包中无法被扫描的解决方案

    spring注解在自定义jar包中无法被扫描的解决方案

    这篇文章主要介绍了spring注解在自定义jar包中无法被扫描的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java 图片复制功能实现过程解析

    Java 图片复制功能实现过程解析

    这篇文章主要介绍了Java 图片复制功能实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Java的并发编程之CyclicBarrier解析

    Java的并发编程之CyclicBarrier解析

    这篇文章主要介绍了Java的并发编程之CyclicBarrier解析,CyclicBarrier支持一个可选的Runnable命令,在一组线程中的最后一个线程到达之后(但在释放所有线程之前),该命令只在每个屏障点运行一次,需要的朋友可以参考下
    2023-11-11
  • SpringBoot实现滑块验证码验证登陆校验功能详解

    SpringBoot实现滑块验证码验证登陆校验功能详解

    验证码作为一种自然人的机器人的判别工具,被广泛的用于各种防止程序做自动化的场景中。传统的字符型验证安全性已经名存实亡的情况下,各种新型的验证码如雨后春笋般涌现,今天给大家分享一篇SpringBoot实现滑块验证码
    2022-09-09
  • 使用idea+gradle编译spring5.x.x源码分析

    使用idea+gradle编译spring5.x.x源码分析

    这篇文章主要介绍了idea + gradle编译spring5.x.x源码,在编译spring5源码时需要将项目导入idea中然后编译配置,本文给大家讲解的非常详细,需要的朋友可以参考下
    2022-04-04
  • SpringBoot Import及自定义装配实现方法解析

    SpringBoot Import及自定义装配实现方法解析

    这篇文章主要介绍了SpringBoot Import及自定义装配实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Spring boot项目整合WebSocket方法

    Spring boot项目整合WebSocket方法

    这篇文章主要介绍了WebSocket使用Spring boot整合方法,需要继承webSocketHandler类,重写几个方法就可以了,具体实例代码跟随小编一起看看吧
    2021-09-09

最新评论