ssm的报错问题-----Invalid bound statement (not found)

错误信息:

Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.sm.dao.SMUserLoginDao.sm_userlogin

这是我的文件结构

 

很多人报错是因为

1、SMUserLogin.xml文件<mapper>的namespace路径不对

 

2、SMUserLogin.xml文件<select>的id名和SMUserLoginDao中对应的方法名不一致

 

3、下面来说一下我的报错:

Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.sm.dao.SMUserLoginDao.sm_userlogin

报这个错,是因为我的mybatis的映射文件写在entity包下的,而entity包下的这个SMUserLogin.xml文件不会自动打包classes ,所以会出现找不到文件。

(src/main/java 里面的除了java文件 其他的不会打包到classes 所以会出现文件找不到的文件。)

既然不会自动打包,那么就需要配置,需要在pom.xml 中配置。

下面是pom.xml文件中的补存内容

 

我之前还一直疑问,在applicationContext.xml中我已经有配置过了

 

那是因为,applicationContext.xml中配置的是要扫描的路径   resource是打包到classes里面 才能扫描。

所以最终在pom.xml中的<build>标签中加<resources>...<resources>这一段代码就好

<resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.xml</include>
        </includes>
      </resource>
    </resources>


4、下面再说一个我这个报错原因可以解决的方法。

因为前面说到:(src/main/java 里面的除了java文件 其他的不会打包到classes 所以会出现文件找不到的文件。)

那么我们把mybatis映射文件SMUserLogin.xml一类的映射文件放到resources中就不用在pom.xml中写<resources></resources>那一段了。

注:但是不能直接放resources文件夹 要先在里面创建一个文件夹 比如 mapper 然后修改applicationContext.xml的配置 

 

这样处理之后,pom.xml中<resources></resources>那一段就可以删掉了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值