java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider.()

这个问题好奇怪,spring

出现这个错误是通用Mapper初始化的错误,排查的方向就是往这个方向,可能的状况有如下几种:

1.jar包冲突

<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>3.3.9</version>
</dependency>
<dependency>
   <groupId>tk.mybatis</groupId>
   <artifactId>mapper-spring-boot-starter</artifactId>
   <version>2.0.0</version>
</dependency>
如图所示这里有两个tk.mybatis通用Mapper的包了,因此springboot不知道该初始化哪一个

<dependency>
   <groupId>tk.mybatis</groupId>
   <artifactId>mapper-spring-boot-starter</artifactId>
   <version>2.0.0</version>
</dependency>
这里使用这个包,重启后运行正常

2,MapperCan 扫包配置错误

@SpringBootApplication
@MapperScan(basePackages = "com.example.demo.*.dao")
@ComponentScan("com.example.demo.*")
public class DemoApplication extends SpringBootServletInitializer{
以前配置的是

@MapperScan(basePackages = "com.example.demo.*.dao")
应该改为

@MapperScan(basePackages = "com.example.demo.*.dao.*")
我思考了如下应该是扫包的话是扫不少个包,因此应该是以*结尾的

这样重启后正常
--------------------- 
做者:跃跃的呢 
来源:CSDN 
原文:https://blog.csdn.net/y2446421841/article/details/80566082 
版权声明:本文为博主原创文章,转载请附上博文连接!

 

看起来好像BaseSelectProvider 须要一个无参的构造器,可是查看了BaseSelectProvider源码,确实是没有的,怎么办呢? 感受好像是版本问题,springboot

 

尝试导入:mybatis

import tk.mybatis.spring.annotation.MapperScan;app

可是没有这个类,只有另外的一个,可是 那个偏偏是 好像是错误的根源。ide

        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <!--<version>1.1.5</version>-->
            <version>2.0.0</version>
        </dependency>

后面把版本从1.1.5 改为了 2.0.0 就行了, 奇怪了。spring-boot

 

https://www.jianshu.com/p/71fe3b73479cspa

https://blog.csdn.net/Dongguabai/article/details/80729563.net

相关文章
相关标签/搜索