问题描述:
SpringBoot整合shiro登录认证报错如下
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.hansin.hansincenter.dao.UserMapper.queryByName
at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:227) ~[mybatis-3.4.6.jar:3.4.6]
at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:49) ~[mybatis-3.4.6.jar:3.4.6]
at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:65) ~[mybatis-3.4.6.jar:3.4.6]
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:58) ~[mybatis-3.4.6.jar:3.4.6]
at com.sun.proxy.$Proxy65.queryByName(Unknown Source) ~[na:na]
at com.hansin.hansincenter.service.impl.UserServiceImpl.findByName(UserServiceImpl.java:35) ~[classes/:na]
分析:
Invalid bound statement无效的绑定状态,可以看出问题是UserMapper没有绑定实例,导致无法调用。
检查mapper扫描路径,命名空间定义都没有问题。之前springBoot配置mapper是在resource下,我现在是放在src/main/java下,需要多一步配置。
解决方法:
在pom.xml的build标签添加如下内容
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
重新启动项目,问题解决。