Field xxxMapper in xxxController required a bean of type ‘xxxMapper‘ that could not be found解决方案

在SpringBoot项目中遇到Mapper类未被自动装载的问题,尝试了在Mapper接口上添加@Mapper注解和在启动类中使用@MapperScan无果。最终发现是添加的MyBatis依赖不正确,应使用mybatis-spring-boot-starter依赖。添加正确依赖并重启项目后问题解决。
摘要由CSDN通过智能技术生成

今天在给项目添加mysql数据库的时候出了点小问题,捣弄了半小时解决了。

 描述是Controller类中没有检测到本应自动装载的数据库的Mapper类。

@Controller
public class HttpAPIController {
    
    //此处Mapper类应该被自动装载
    @Autowired
    private ClientMapper clientMapper;
    
    …………
}

上网找了些资料,例如在Mapper接口中填加@Mapper()注解(另一种方法是在启动类中添加@MapperScan(xxx.xxx.mapper),参数为Mapper接口所在的包)。详情可以看这篇博客:https://blog.csdn.net/weixin_42585386/article/details/107605031        但这不是我的项目的问题,于是我只好苦逼地继续debug。

后来在尝试在启动类中加@MapperScan注解的时候发现idea死活都不给提醒且没有找到该注解,于是我考虑是否是pom中依赖出现问题。

<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis</artifactId>
	<version>3.5.7</version>
</dependency>

这是我原本添加的mybatis依赖,是在maven官网搜的(https://mvnrepository.com/search?q=mybatis)。大家添加的时候一定要看清再添加。

 正确依赖:

<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>2.2.0</version>
</dependency>

我们点进去看一下

 果然除了之前的错误依赖之外,还有很多与springboot集成的依赖(图中并不完全)。重新启动项目,成功运行。

有关mybatis数据库添加的报错问题,还可以检查下yaml(property)文件中的配置,Mapper的xml文件中是否修改namespace和sql语句等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值