SpringBoot踩坑记录 Invalid bound statement (not found)引发的一些列问题
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)引发的一些列问题相关推荐
- SpringBoot踩坑记录--Invalid bound statement (not found): com.zxq.crud.dao.UserDao.selectAllByDepart
SpringBoot踩坑记录--Invalid bound statement: com.zxq.crud.dao.UserDao.selectAllByDepart 运行SpringBoot项目时提 ...
- springboot整合mybatis之Invalid bound statement解决
项目场景: 最近跟着一些网上项目做了springboot的相关学习,真心觉得方便,快捷,好用,感觉自己学的差不多了,就想着自己完全独立做一个CRUD练练手,本想速战速决,没想到触发了一个隐秘的小坑,在 ...
- Springboot项目中报错Invalid bound statement(not found):com.******报错处理
报错: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.way.springb ...
- SpringBoot整合mybatis时报Invalid bound statement (not found)错误的可能原因
Invalid bound statement (not found)这个问题的实质就是mapper接口和mapper.xml没有映射起来 常见的低智商问题有下列几个 1.mapper.xml 里面的 ...
- 初学Springboot使用MyBatis-Plus出现Invalid bound statement (not found)的解决
出现问题: 学习Springboot时出现找不到mapper里的方法,很奇怪通用的MP能使用,自己定义的MP就会出现上面的问题,看了自己写的mpper映射路径啥的都没有问题 疯狂百度查找,替换版本,好 ...
- 【springboot 踩坑记录】拦截器中无法注入bean
原因: 注册拦截器的时候是new出来的,spring没有管理.所以无法注入对象 @Beanpublic AgentInterceptor agentInterceptor(){return new A ...
- springboot整合mybatis错误 Invalid bound statement (not found): com.yuan.mapper.UserMapper.getUserList
出现的原因是 src文件下的mapper有mapper接口和映射文件,而target下的mapper文件却没有映射文件 =解决方案======== 1.把映射文件 放到resources 目录下 结构 ...
- springboot整合mybatis出现Invalid bound statement (not found): com.mapper.UserMapper.selectByPrimaryKey
1.pom.xml中添加以下内容 <build> <resources> <resource> <dire ...
- 智障每一天,特此警示自己!配置Springboot项目出现:Invalid bound statement (not found): com.xxz.crm.dao.UserMapper.query
出现这种情况大多都是相关的某个路径写错了,一定一定要小心核对,越是不起眼的地方越是容易出现问题.太他妈难受了,这鬼东西. 下面直击问题 就一个单词写错,找了几个小时,真他吗下头,菜的抠脚. 看出来了没 ...
最新文章
- C#图片灰度处理(位深度24→位深度8),用灰度数组byte[]新建一个8位灰度图像Bitmap 。...
- python画折线图代码-python画折线示意图实例代码
- BS的data-toggle/data-target
- .Net TCP/UDP 编程 【一】【原创】
- spark submit参数及调优
- 个人学习进度(第十六周)
- pajek软件使用方法_使用Jco远程连接SAP软件系统方法
- 【Flink】报错Could not forward element to next operator Buffer pool is destroyed
- HeidiSQL- csv 表格导入数据到 DB表
- ubtunu开机黑屏无桌面解决方法
- xp共享文件夹服务器,xp共享文件夹服务器
- JAVA API帮助文档
- 什么是计算机数字代码,计算机代码1—10这10个数字表示什么意思 例如:数字1 计算机代码00001 这是什么意思...
- 异步十二进制加法计数器(统一使用上升沿触发的D触发器)设计
- 简述CC2530晶振、振荡器与时钟
- debezium系列之:理解database.server.name和database.history.kafka.topic
- 用Python分析经纬度数据
- 网页视频倍速播放的方法
- workflow开发注意事项
- TS科普11 PES包句法解析
热门文章
- Java LinkedList getFirst()方法与示例
- 基于嵌入式linux的数码相框的设计,基于Linux NFS的Web数码相框设计
- arcgis字段计算器无法赋值_Arcgis空间连接工具的妙用
- java.util.zip_[Java 基础] 使用java.util.zip包压缩和解压缩文件
- python 当日日期_Python程序寻找当日赢家
- python字符串转义序列_Python | 忽略字符串中的转义序列
- js提取正则中的字符串
- JS判断文本框中只能输入数字和小数点
- Python禁止最大化按钮和禁止拉伸窗口大小
- pyinstaller 打包python应用为exe后 打包出现failed to execute script