通用Mapper初始化失败
控制台报错java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider.()
4种情况 BaseINSTERProvider、BaseDELETEProvider、BaseUPDATEProvider、BaseSelectProvider 增删改查
报错均为初始化(init)失败
1、导包重复
<!-- https://mvnrepository.com/artifact/tk.mybatis/mapper -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>4.0.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spring-boot-starter -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
//这两个包二选一,本例选第一个
2、导包错误
package dao.mapper;
import beans.pojo.User;
import tk.mybatis.mapper.common.Mapper;
public interface ******Mapper extends Mapper<User> {
}
//接口中导入-正确: tk.mybatis.mapper.common.Mapper
3、配置文件XML写错
这种情况出错不易察觉,也不应该
错误:class导入的org
<!--配置Dao 由MyBatis-Spring来管理Mapper接口自动映射-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="dao.mapper"/>
</bean>
正确:导入的tk
<!--配置Dao 由MyBatis-Spring来管理Mapper接口自动映射-->
<bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="dao.mapper"/>
</bean>
注意:扫描的包必须包含需要使用的接口,例如:dao.mapper 对应2中的 package dao.mapper,否则会报错加载bean失败