最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot使用MyBatis-Plus解決Invalid?bound?statement異常

 更新時(shí)間:2022年09月28日 15:10:30   作者:牧碼人博客www.luckyhe.com  
這篇文章主要介紹了SpringBoot使用MyBatis-Plus解決Invalid?bound?statement異常,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

前言

本篇文章主要介紹關(guān)于我在SpringBoot中使用MyBatis-Plus是如何解決Invalid bound statement (not found)這個(gè)異常的。我先拋一些我在這個(gè)途中遇到的一些問題,看看各位了解不了解。

  • 當(dāng)Mybatisxml文件不在resouce下時(shí)該如何配置。
  • 如何去指定mapper-Location的配置。
  • classpath*classpath的區(qū)別是啥
  • Invalid bound statement (not found)出現(xiàn)的原因是什么

以上就是我遇到這個(gè)問題之后總結(jié)的三個(gè)問題。

緣由

作者來了一下新公司,這邊的框架看的我很悶,特別是關(guān)于mybatis的一些用法。這邊的sql都是用注解寫在Mapper文件上。

例如:

 @Select("SELECT id,status, " +
            " actual_usage_id usage_id," +
            " location_id ," +
            " group_id ," +
            " breakdown_Level_id, " +
            " receive_persion_id " +
            "FROM " +
            " t_repair_workorder  " +
            " ${ew.customSqlSegment} ")
    List<IndexDutyPageVo> dutyFaultPage(@Param(Constants.WRAPPER) Wrapper<?> wrappser);

整個(gè)項(xiàng)目全是這種寫法,我一開始以為是規(guī)范。后面問了一個(gè)老員工才知道。說以前這個(gè)項(xiàng)目是寫在xml的,但是后面改了一下架構(gòu)之后xml的配置就掃描不到了。嗯嗯嗯…

這邊的項(xiàng)目結(jié)構(gòu),xml文件不是放在resouce下,并且具體的業(yè)務(wù)包是跟maven引入進(jìn)去的(這個(gè)就是我前文提到的架構(gòu)改變了)。注意這兩個(gè)是重點(diǎn)。我猜測他們不會(huì)配置的點(diǎn)應(yīng)該就是這個(gè)原因了吧。

解決問題

竟然知道了問題就開始解決問題。

當(dāng)Mybatisxml文件不在resouce下時(shí)該如何配置。

Mybatis中如果xml文件不在resource目錄下的話,默認(rèn)打包是會(huì)被忽略的,所以需要在pom文件中加一段配置。

 <build>
        <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
         </resources>	
    </build>

改完這個(gè)后重新build一下,注意去查看下target文件夾下是否xml文件。

如何去指定mapper-Location的配置

mybatis-plus:
  mapper-locations: classpath*:top/**/*.xml
## top是我具體文件夾可以不要,  **的意思代表一個(gè)或者多個(gè)目錄

classpath*classpath的區(qū)別是啥

這個(gè)問題是重點(diǎn)要考的記一下,帶*的話會(huì)掃描jar包下面的文件,不帶*只會(huì)掃描當(dāng)前項(xiàng)目。

Invalid bound statement (not found)出現(xiàn)的原因是什么?如何排查這個(gè)問題

這個(gè)報(bào)錯(cuò)的出現(xiàn),就是代表你的mapper文件跟xml映射不到。如果你確保你的框架沒有問題下,其它的代碼都能映射得到的情況,那么你就要注意了,首先你的xml文件的名字跟Mapper文件是不是一致的,方法名跟xmlid是不是一致的。如果你這兩個(gè)都對(duì)了,再去查你的mapper-locations的配置,這里沒問題,再去查編譯包??纯?code>xml編譯到了不。如果這些都沒問題。那人跟代碼只要一個(gè)能跑就行。

總結(jié)

其實(shí)使用xml跟使用注解的形式都能完成需求,沒多大的區(qū)別。但是使用xml的可讀性,以及易維護(hù)性。個(gè)人覺得比注解方式強(qiáng)太多了。此次問題的出現(xiàn),關(guān)鍵在于架構(gòu)的改變,架構(gòu)者一想把xmlresource移除,二又想把業(yè)務(wù)模塊熱插拔。這個(gè)想法是好的。但是做事做一半真的不太可取。

到此這篇關(guān)于SpringBoot使用MyBatis-Plus解決Invalid bound statement異常的文章就介紹到這了,更多相關(guān)SpringBoot 異常內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

滨州市| 奇台县| 荔浦县| 老河口市| 年辖:市辖区| 东宁县| 桦南县| 怀仁县| 慈利县| 睢宁县| 福鼎市| 江阴市| 监利县| 建始县| 恩平市| 杭锦旗| 都安| 马山县| 永川市| 乌海市| 福清市| 彭阳县| 莲花县| 满城县| 安福县| 泰顺县| 楚雄市| 松潘县| 长岛县| 嘉定区| 陆河县| 江阴市| 蕉岭县| 乡宁县| 广德县| 开原市| 修文县| 辉县市| 伊吾县| 延安市| 邢台市|