场景
在使用SpringBoot+MyBatisPlus搭建后台启动项目时,使用EasyCode自动生成代码。
在访问后台接口时提示:
Invilid bound statement (not found):**.dao.UserDao.queryById
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
首先第一步是会想到dao层的注入有问题。
在使用EasyCode生成代码后,默认生成代码模板中是没有添加@Mapper注解或者在启动类中添加@MapperScan注解。
二者选其一,这里在启动类上添加mapper层扫描注解。
如果在添加后仍然不起作用,在运行项目时不报错,但是在进行后台接口请求时还是提示以上问题。
那么此时应该就是配置文件有问题了。
找到配置文件application.yml
添加mapper配置文件扫描的配置
mapper-locations: classpath:mapper/*Dao.xml
添加位置参照以下代码
server: port: 8088 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/usr username: root password: 123 mybatis-plus: #信息输出设置 # xml地址 mapper-locations: classpath:mapper/*Dao.xml # 实体扫描,多个package用逗号或者分号分隔 # type-aliases-package: *** #自己的实体类地址 configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl