关于mybatis Invalid bound statement (not found) 问题
初学mybatis现在系统是spring+mybatis
applicationContext.xml里面配置了Mapper自动扫描
<beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">
<propertyname="basePackage"value="com.yolly.platform.*"/>
</bean>
然后定义了一个userMapper,里面就只有一个方法
@Repository(value="userMapper")
publicinterfaceUserMapper{
publicList<User>getAll();
}
下面是userMapper.xml
<mappernamespace="com.yolly.platform.user.mapper.UserMapper">
<selectid="getAll"resultType="user">
select*fromuser
</select>
</mapper>
下面是mybatis配置文件
<configuration>
<settings>
<settingname="cacheEnabled"value="true"/>
</settings>
<typeAliases>
<typeAliasalias="user"type="com.yolly.platform.user.entity.User"/>
</typeAliases>
<mappers>
<mapperresource="mappers/UserMapper.xml"/>
</mappers>
</configuration>
我业务层定义了一个接口UserService然后下面是实现类
@Component(value="userServiceImpl")
@Transactional
publicclassUserServiceImplimplementsUserService{
privateUserMapperuserMapper;
@Autowired
publicvoidsetUserMapper(UserMapperuserMapper){
this.userMapper=userMapper;
}
publicList<User>getAll(){
returnuserMapper.getAll();
}
}
我spring配置文件加载完成后运行下面的代码可以获取结果
UserServiceImpluserServiceImpl=(UserServiceImpl)PlatformContext.getApplicationContext().getBean("userServiceImpl");
List<User>lista=userServiceImpl.getAll();
但是我现在又写了一个类叫UserComponent如下:
@Component(value="userComponent")
publicclassUserComponent{
privateUserServiceuserService;
@Autowired
publicvoidsetUserService(UserServiceuserService){
this.userService=userService;
}
publicList<User>getAll(Headhead){
returnuserService.getAll();
}
}
我这个UserService直接注入了
UserComponentuserComponent=(UserComponent)PlatformContext.getApplicationContext().getBean("userComponent");
List<User>list=userComponent.getAll();
我像这样调用的时候就不行了,只是多加了一层啊,这是为啥,求解!
下面是异常信息:
org.apache.ibatis.binding.BindingException:Invalidboundstatement(notfound):com.yolly.platform.user.service.UserService.getAll
atorg.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:178)
atorg.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:38)
atorg.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:49)
atorg.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:42)
at$Proxy12.getAll(UnknownSource)
atcom.yolly.platform.user.component.UserComponent.getAll(UserComponent.java:25)
atcom.yolly.core.main.Server$ServerHandler.messageReceived(Server.java:101)
atorg.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:690)
atorg.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417)
atorg.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
atorg.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:765)
atorg.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:74)
atorg.apache.mina.core.session.IoEvent.run(IoEvent.java:63)
atorg.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:769)
atorg.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:761)
atorg.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:703)
atjava.lang.Thread.run(Thread.java:662)
Causedby:java.lang.IllegalArgumentException:MappedStatementscollectiondoesnotcontainvalueforcom.yolly.platform.user.service.UserService.getAll
atorg.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:775)
atorg.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:615)
atorg.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:608)
atorg.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:176)
...16more
源码来源:×××/technology
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。