mybatis报错:Invalid bound statement (not found): com.chat.mappers.UserInfoMapper.getByUserName

文章详细解释了在MyBatis中遇到Invalidboundstatement(notfound)异常的原因,包括映射文件配置错误、注解方式配置错误以及MyBatis配置错误,并提供了检查和解决此类问题的具体步骤。最终发现问题是由于IDEA误将mappers文件夹识别为一个文件导致的,正确创建文件夹结构后问题解决。
摘要由CSDN通过智能技术生成

Invalid bound statement (not found) 意思是无效绑定

这个异常表示 MyBatis 无法找到名为 `com.chat.mappers.UserInfoMapper.getByUserName` 的绑定语句(bound statement)。这通常是由于以下原因之一导致的:

1. 映射文件配置错误:可能是你的 MyBatis 映射文件中没有定义名为 `getByUserName` 的语句,或者语句的命名不正确。请检查对应的映射文件(通常是 XML 文件)中是否存在 `getByUserName` 的语句,并确保它的命名和配置正确。

   示例映射文件(UserInfoMapper.xml)中的语句定义:

   <select id="getByUserName" parameterType="String" resultType="com.chat.entity.UserInfo">
     SELECT * FROM users WHERE username = #{username}
   </select>

2. 注解方式配置错误:如果你使用注解方式进行映射,可能是你的接口方法上的注解与映射文件中定义的语句不匹配。请确保接口方法上的注解与映射文件中的语句对应。

   示例接口方法的注解配置:

   @Select("SELECT * FROM users WHERE username = #{username}")
   UserInfo getByUserName(String username);

3. MyBatis配置错误:可能是你的 MyBatis 配置文件中未正确加载映射文件或扫描了错误的包。请检查 MyBatis 配置文件(通常是 XML 文件)中的 `<mappers>` 配置,确保映射文件被正确加载并指定了正确的包路径。

   示例MyBatis配置文件中的映射文件配置:

   <mappers>
     <mapper resource="com/chat/mappers/UserInfoMapper.xml"/>
   </mappers>

解决但是仅从项目目录上看,没有任何错误,路径完全正确,仔细检查对应的映射名称也一模一样

于是找了半天的bug,最后终于发现了问题。

 解决办法

从目录上看,下面两个xml文件的路径一模一样

 但是,分别打开他们两个就能发现问题

 

 现在你已经能知道问题出现在哪了,我在第一次创建mappers文件夹时直接输入了com.chat.mappers,于是IDEA把它识别成了一个名为com.chat.mappers的文件夹导致了错误。

正确的方法是先创建com文件夹,然后是chat文件夹,再是mappers文件夹。

至此问题解决!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值