日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

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

發布時間:2025/3/12 javascript 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)引发的一些列问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。