springboot使用使用mybatis报错BindingException

19 篇文章 0 订阅
3 篇文章 0 订阅

springboot使用使用mybatis报错BindingException

使用springboot在启动类添加上@MapperScan(“com.jd.mapper”)注解,扫描mapper所在的包,否则springboot无法启动。

使用mybatis的使用报错为:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.jd.mapper.UserMapper.getUserList
主要是为绑定Mapper接口和Mapper.xml 异常。

解决方式

1、检查名称

两个文件的名称要完全一致,仅后缀不同。
在这里插入图片描述

2、检查命名空间

在mapper.xml中命名空间是接口的全限定路径。
在这里插入图片描述

3、检查sql语句的id

sql语句中的id要与接口中的方法名一致。

接口中的方法
在这里插入图片描述
mapper.xml 中的sql的id
在这里插入图片描述

4、检查返回值

sql中的resultType是否与接口的返回值一致。

注意:尽量使用resultMap,进行逐一对应。并且如果使用到别名的话,在配置文件中配置

mybatis.type-aliases-package=com.jd.domain

5、查看mapper.xml是否打包到target

使用maven管理项目的话,maven不会打包main/java下的 .xml文件,只会打包 .java。如下图没有打包,需要添加pom文件打包。
在这里插入图片描述
将mapper.xml编译打包有两种方式:
1、添加编译命令,将java包下的xml一同打包。

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
              	    <!--任意包下的任意名称的xml文件-->
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

2、mapper.xml和接口分离
将mapper.xml 与 接口分离,将mapper.xml放在main/resources之下,
并且在配置文件中添加mapper文件的位置信息:

mybatis.mapper-locations=classpath:mapper/*.xml

在这里插入图片描述

总结

建议使用mybatis的插件,更好的将mapper接口和mapper.xml结合起来。
使用这个插件很好用。
在这里插入图片描述
使用之后会出现蓝色箭头,直接对应找到mapper.xml
在这里插入图片描述
另外:纪录一下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="com.jd.mapper.UserMapper">

</mapper>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值