SpringBoot踩坑记录

Invalid bound statement (not found)引发的一些列问题

当你开开心心搭建了一个SpringBoot项目,用插件生成了entity、dao、mapper,写下第一个Controller准备试一下,结果却发现一条简单的查询报错了。

{"timestamp": "2019-03-18 16:21:48","status": 500,"error": "Internal Server Error","message": "Invalid bound statement (not found): com.xxx.dao.UserMapper.selectByPrimaryKey","path": "/test"}

经过排查,发现target/classes/包名目录下不存在mapper文件夹,一个令人伤心的事情。

​ 于是我们知道了关键所在,怎么把mapper下的xml文件打包进去。通过查阅资料,我们知道了解决这个问题通常有两个思路:

1.将mapper放在src/main/resource 目录下,这个目录下默认是会打包进去的。

2.在pom文件的

<build></build>

节点内,添加一段

<resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes><!-- 是否替换资源中的属性--><filtering>false</filtering></resource>
</resources>

3.当你打包时,手动把xml文件所在的mapper文件夹丢进target/classes/包名/目录下。需要丢一次+运行一次就好了

以上3种方法我只试过下面两种,上面那种虽然没有确切放过xml文件,但是其他类文件的存放以及打包倒是用过,这个后面再说。

现在来确切说说第二种。这里是有坑的

坑.1 配置过度导致捡了芝麻丢了西瓜

比如,会在别处看到一些这样的配置。实际上src/main/resources下的文件都会被打包,如果把图中那段注释解开,你会发现除了xml和properties文件,其他东西都没打包进去(如果你使用的是yml配置,那么yml也不会被打包进去),图中的这位博主估计也是发现了这段代码的弊大于利。

这里就牵扯出一个问题了。如果我的项目中resource下只有xml,和properties文件,这段配置也无伤大雅咯?是的,的确是这样,templates和static下似乎是能打包进去的。

在解决了xml打包之后,我们迫不及待的继续打包运行,发现依旧是那个报错,emmmmmmm,这让人不禁有些头大。翻开前辈的项目,发现了在yml下,还配置了mybatis

mybatis:mapper-locations: classpath:com/xx/xxx/mapper/**/*.xmltype-aliases-package: com.xx.xxx.entityconfiguration:cache-enabled: false

坑.2 Mybatis路径配置须小心

当看到路径里mapper/**/*.xml时,不知怎么的,我就自作聪明把mapper给删掉了,/**/*.xml,看似是指向下一级目录的xml文件,但是当你自作聪明的删掉了这里之后,你会发现xml虽然打包进去了,但是你的dao依然找不到mapper,还是报错。

血的教训啊,童鞋们切记这个路径是:包名/xml所在目录/**/*.xml

SpringBoot踩坑记录 Invalid bound statement (not found)引发的一些列问题相关推荐

  1. SpringBoot踩坑记录--Invalid bound statement (not found): com.zxq.crud.dao.UserDao.selectAllByDepart

    SpringBoot踩坑记录--Invalid bound statement: com.zxq.crud.dao.UserDao.selectAllByDepart 运行SpringBoot项目时提 ...

  2. springboot整合mybatis之Invalid bound statement解决

    项目场景: 最近跟着一些网上项目做了springboot的相关学习,真心觉得方便,快捷,好用,感觉自己学的差不多了,就想着自己完全独立做一个CRUD练练手,本想速战速决,没想到触发了一个隐秘的小坑,在 ...

  3. Springboot项目中报错Invalid bound statement(not found):com.******报错处理

    报错: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.way.springb ...

  4. SpringBoot整合mybatis时报Invalid bound statement (not found)错误的可能原因

    Invalid bound statement (not found)这个问题的实质就是mapper接口和mapper.xml没有映射起来 常见的低智商问题有下列几个 1.mapper.xml 里面的 ...

  5. 初学Springboot使用MyBatis-Plus出现Invalid bound statement (not found)的解决

    出现问题: 学习Springboot时出现找不到mapper里的方法,很奇怪通用的MP能使用,自己定义的MP就会出现上面的问题,看了自己写的mpper映射路径啥的都没有问题 疯狂百度查找,替换版本,好 ...

  6. 【springboot 踩坑记录】拦截器中无法注入bean

    原因: 注册拦截器的时候是new出来的,spring没有管理.所以无法注入对象 @Beanpublic AgentInterceptor agentInterceptor(){return new A ...

  7. springboot整合mybatis错误 Invalid bound statement (not found): com.yuan.mapper.UserMapper.getUserList

    出现的原因是 src文件下的mapper有mapper接口和映射文件,而target下的mapper文件却没有映射文件 =解决方案======== 1.把映射文件 放到resources 目录下 结构 ...

  8. springboot整合mybatis出现Invalid bound statement (not found): com.mapper.UserMapper.selectByPrimaryKey

    1.pom.xml中添加以下内容 <build>       <resources>         <resource>             <dire ...

  9. 智障每一天,特此警示自己!配置Springboot项目出现:Invalid bound statement (not found): com.xxz.crm.dao.UserMapper.query

    出现这种情况大多都是相关的某个路径写错了,一定一定要小心核对,越是不起眼的地方越是容易出现问题.太他妈难受了,这鬼东西. 下面直击问题 就一个单词写错,找了几个小时,真他吗下头,菜的抠脚. 看出来了没 ...

最新文章

  1. C#图片灰度处理(位深度24→位深度8),用灰度数组byte[]新建一个8位灰度图像Bitmap 。...
  2. python画折线图代码-python画折线示意图实例代码
  3. BS的data-toggle/data-target
  4. .Net TCP/UDP 编程 【一】【原创】
  5. spark submit参数及调优
  6. 个人学习进度(第十六周)
  7. pajek软件使用方法_使用Jco远程连接SAP软件系统方法
  8. 【Flink】报错Could not forward element to next operator Buffer pool is destroyed
  9. HeidiSQL- csv 表格导入数据到 DB表
  10. ubtunu开机黑屏无桌面解决方法
  11. xp共享文件夹服务器,xp共享文件夹服务器
  12. JAVA API帮助文档
  13. 什么是计算机数字代码,计算机代码1—10这10个数字表示什么意思 例如:数字1 计算机代码00001 这是什么意思...
  14. 异步十二进制加法计数器(统一使用上升沿触发的D触发器)设计
  15. 简述CC2530晶振、振荡器与时钟
  16. debezium系列之:理解database.server.name和database.history.kafka.topic
  17. 用Python分析经纬度数据
  18. 网页视频倍速播放的方法
  19. workflow开发注意事项
  20. TS科普11 PES包句法解析

热门文章

  1. Java LinkedList getFirst()方法与示例
  2. 基于嵌入式linux的数码相框的设计,基于Linux NFS的Web数码相框设计
  3. arcgis字段计算器无法赋值_Arcgis空间连接工具的妙用
  4. java.util.zip_[Java 基础] 使用java.util.zip包压缩和解压缩文件
  5. python 当日日期_Python程序寻找当日赢家
  6. python字符串转义序列_Python | 忽略字符串中的转义序列
  7. js提取正则中的字符串
  8. JS判断文本框中只能输入数字和小数点
  9. Python禁止最大化按钮和禁止拉伸窗口大小
  10. pyinstaller 打包python应用为exe后 打包出现failed to execute script