报错如下:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.awei.service.AdminService.getBaseMapper
at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:235) ~[mybatis-3.5.10.jar:3.5.10]
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.<init>(MybatisMapperMethod.java:50) ~[mybatis-plus-core-3.5.2.jar:3.5.2]
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.lambda$cachedInvoker$0(MybatisMapperProxy.java:111) ~[mybatis-plus-core-3.5.2.jar:3.5.2]
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) ~[na:1.8.0_341]
at com.baomidou.mybatisplus.core.toolkit.CollectionUtils.computeIfAbsent(CollectionUtils.java:115) ~[mybatis-plus-core-3.5.2.jar:3.5.2]
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.cachedInvoker(MybatisMapperProxy.java:98) ~[mybatis-plus-core-3.5.2.jar:3.5.2]
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) ~[mybatis-plus-core-3.5.2.jar:3.5.2]
at com.sun.proxy.$Proxy55.getBaseMapper(Unknown Source) ~[na:na]
at com.baomidou.mybatisplus.extension.service.IService.list(IService.java:370) ~[mybatis-plus-extension-3.5.2.jar:3.5.2]
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627) ~[na:1.8.0_341]
网友提供了许多参考答案,但都没解决我的问题:
我的解决方法是:@Autowired自动注入的类型是实现类,不是接口
@RestController
public class AdminController {
@Autowired
private AdminServiceImpl adminService;
//private AdminService adminService;这是引起错误的原因,得用实现类,不能用service接口类型
剩下的就是dao,service
public interface AdminDao extends BaseMapper<Admin> {
}
public interface AdminService extends IService<Admin> {
}
实现类
@Service
public class AdminServiceImpl extends ServiceImpl<AdminDao, Admin> implements AdminService {
}
配置文件的yaml格式层级是否正确
server:
port: 8033
spring:
application:
name: Admin
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/ticket?serverTimezone=UTC
username: root
password: 123456
type: com.alibaba.druid.pool.DruidDataSource
mybatis-plus:
global-config:
db-config:
id-type: auto #id生成规则:数据库id自增
configuration:
map-underscore-to-camel-case: false # 开启驼峰功能
auto-mapping-behavior: full # 自动映射任何复杂的结果
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
实体类
/**
* 管理员实体
*/
@Data
public class Admin {
@TableId(type = IdType.AUTO)
private Integer id; // 编号
private String userName; // 用户名
private String password; // 密码
}
启动类是否添加了@MapperScan注解,进行包扫描,否则无法把springmvc的对象注入到ioc容器中
@SpringBootApplication
@MapperScan("com.awei")
public class AdminApplication {
public static void main(String[] args) {
SpringApplication.run(AdminApplication.class, args);
}
}