错误代码
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xxx.xxx.xxx.dao.mapper.PageTemplateMapper.findPageTemplateBasicInfoList
at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:227)
at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:49)
at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:65)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:58)
at com.sun.proxy.$Proxy202.findPageTemplateBasicInfoList(Unknown Source)
.....
其实就是一个项目启动时,service去调用mapper中的方法,然后找不到的问题。
首先一个个排查:
1.mapper层的接口是否加了@Mapper
2.有没有在配置文件(application.yml)中配置mybatis,扫描地址根据你的文件夹地址来
mybatis: mapper-locations: - classpath:mapper/*.xml - classpath*:com/**/mapper/*.xml
3.在启动类处加一个@MapperScan("com.*.dao"),括号里面是你的文件夹地址;
4.pom文件有没有mybatis的依赖
<!-- MyBatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <scope>compile</scope> </dependency>
5.当以上方法都不行,可以试试我这个,我的是微服务项目,有个nacos配置中心,因为是本地没有连服务器所以里面nacos要连接本地的数据库,在nacos安装的conf文件夹下面有个application.properties,在这个文件夹下面找到这个然后去掉注释填上你自己数据库的用户密码,再重启一下nacos,然后启动服务再去看nacos配置中心的服务配置是否正确(数据库这些),博主的问题就通过这个解决了。