Invalid bound statement (not found) controller无法调用调用mapper 和service
时间: 2023-11-04 20:58:54 浏览: 91
Invalid bound statement (not found)错误是由于在controller调用service层时,无法找到对应的方法或映射语句而导致的。可能的原因有以下几个方面:
1. service层中的接口方法命名错误或者参数类型不匹配,导致无法找到对应的方法。
2. service层中的方法没有正确配置对应的映射语句,导致无法找到对应的SQL语句。
3. service层的映射文件没有正确配置或者没有加载到应用程序中。
解决该问题的方法如下:
1. 确认controller层调用service层的方法名和参数类型与service层接口方法的定义一致。
2. 确认service层接口方法与mapper层的映射语句配置正确,并且mapper层的SQL语句也正确。
3. 确认service层的映射文件已正确配置,并且已加载到应用程序中。
如果以上方法仍然无法解决问题,可以尝试以下几个步骤:
1. 检查controller层、service层和mapper层的包路径是否正确,确保类的扫描和加载正确。
2. 检查依赖是否正确引入,如mybatis、spring-boot-starter等相关依赖是否正确配置。
3. 检查数据库连接是否正常,确保数据库服务已启动并且配置正确。
相关问题
Invalid bound statement (not found) controller调用mapper 和service报错
这个错误通常是由于Mybatis无法找到正确的映射语句而引起的。当控制器调用service层方法时报错,但直接调用service层内部的mapper层方法不报错,可能是因为扫描包的路径不正确。
解决方法是确保@MapperScan注解扫描到mapper包的路径。根据你提供的代码,将@MapperScan("com.huangxinyi.petmanage")改为@MapperScan("com.huangxinyi.petmanage.mapper")。
此外,还需要确保mapper接口和mapper.xml文件的路径是正确对应的。
请确保你的项目结构如下所示:
- com.huangxinyi.petmanage
- controller
- TestController
- service
- UserService
- UserServiceImpl
- mapper
- UserMapper
- mapper.xml
- UserMapper.xml
- application.yml
- Application.java
如果你的项目结构和代码都按照上述结构进行了配置,那么你的问题应该会得到解决。
invalid bound statement not found
"Invalid bound statement (not found)"错误通常是由以下几种情况引起的:
1. mapper方法名和mapper.xml中的id名不一致。
2. mapper.xml中的namespace和mapper接口的包名不一致。
3. mapper.xml中的id名写错了。
4. mapper.xml中的参数类型和mapper接口中的参数类型不一致。
5. mapper.xml中的返回值类型和mapper接口中的返回值类型不一致。
解决这个错误的方法是检查以上几个方面是否有问题,并进行相应的修改。
阅读全文