当前使用版本3.0.6
该问题是怎么引起的?
问题起因: 我司原来用的是springboot的项目,继承了mybatis,现在要增加一个需求,然后对应的dao,也就是Mapper需要用到mybatis-plus插件,根据官方文档配置,目前新需求所有的Mapper访问均没有任何问题,但是访问之前非mybatis-plus插件生成的Mapper的时候问题产生了
重现步骤
访问原来的接口,调用原来的dao就会产生错误
报错信息
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.company.core.repository.dao.TsContentDao.findList at com.baomidou.mybatisplus.core.override.PageMapperMethod$SqlCommand.(PageMapperMethod.java:261) at com.baomidou.mybatisplus.core.override.PageMapperMethod.(PageMapperMethod.java:58) at com.baomidou.mybatisplus.core.override.PageMapperProxy.cachedMapperMethod(PageMapperProxy.java:70) at com.baomidou.mybatisplus.core.override.PageMapperProxy.invoke(PageMapperProxy.java:63) at com.sun.proxy.$Proxy91.findList(Unknown Source) at com.company.console.service.TsContentService.findList(TsContentService.java:551) at com.company.console.service.TsContentService$$FastClassBySpringCGLIB$$9b0ef0c2.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684) at com.company.console.service.TsContentService$$EnhancerBySpringCGLIB$$dbf1df98.findList() at com.company.console.service.TsContentService$$FastClassBySpringCGLIB$$9b0ef0c2.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684) at com.company.console.service.TsContentService$$EnhancerBySpringCGLIB$$cdc1e5a2.findList() at com.company.console.interfaces.controller.TsContentManageController.contents(TsContentManageController.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:215) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:142) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:890) at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)
Comment From: miemieYaho
Invalid bound statement 看文档
Comment From: GeneralLHW
都看了,没生效啊
Comment From: miemieYaho
升级版本,还要人教吗?
Comment From: GeneralLHW
嗯,解决了,通俗的说就是原来的yml里面的配置: mybatis: mapperLocations: classpath:mybatis//.xml configLocation: classpath:sqlmapConfig-admin-mybatis.xml 这个是mybatis的,现在要将配置替换成mybatis-plus的: mybatis-plus: mapper-locations: classpath:mybatis//.xml config-location: classpath:sqlmapConfig-admin-mybatis.xml 说白了就是将mybatis换成mybatis-plus,然后其他的mapper,xml什么的该怎么写就怎么写,也不用特殊去配置,没有影响
Comment From: yuxiaobin
Duplicate of #1011
Comment From: damaainan
就想问一句,到底能不能兼容,别老说看文档,文档没那么详细
Comment From: jackRoadOnTop
文档没有细说
Comment From: nkxrb
嗯,解决了,通俗的说就是原来的yml里面的配置: mybatis: mapperLocations: classpath:mybatis//.xml configLocation: classpath:sqlmapConfig-admin-mybatis.xml 这个是mybatis的,现在要将配置替换成mybatis-plus的: mybatis-plus: mapper-locations: classpath:mybatis//.xml config-location: classpath:sqlmapConfig-admin-mybatis.xml 说白了就是将mybatis换成mybatis-plus,然后其他的mapper,xml什么的该怎么写就怎么写,也不用特殊去配置,没有影响
您好,请问,sqlmapConfig-admin-mybatis.xml文件是如何配置的?
Comment From: qt372669021
嗯,解决了,通俗的说就是原来的yml里面的配置: mybatis: mapperLocations: classpath:mybatis//.xml configLocation: classpath:sqlmapConfig-admin-mybatis.xml 这个是mybatis的,现在要将配置替换成mybatis-plus的: mybatis-plus: mapper-locations: classpath:mybatis//.xml config-location: classpath:sqlmapConfig-admin-mybatis.xml 说白了就是将mybatis换成mybatis-plus,然后其他的mapper,xml什么的该怎么写就怎么写,也不用特殊去配置,没有影响
您好,请问,sqlmapConfig-admin-mybatis.xml文件是如何配置的?
像你说的用mybatis -plus 替换mybatis,但是我的项目原先模块用到mybatis,,替换了 ,运行都不起来
Comment From: yang-xiaobai
这种情况应该升级就可以解决了吧
Comment From: ishwy
@qt372669021 你解决了, 我现在也是运行不起来直接报错