Mybatis中接口和对应的mapper文件位置配置详解
今天遇到一個問題是mybatis中接口和對應的mapper文件位置不同,而引起的操作也會不同,在網上找了好久最終找到了方法,這里就簡單的解析一下: 我們知道在典型的maven工程中,目錄結構有:src/main/java和src/main/resources,前者是用來存放java源代碼的,后者則是存放一些資源文件,比如配置文件等. Mybatis中接口和對應的mapper文件不一定要放在同一個包下,如果放在一起的目的是為了Mybatis進行自動掃描,并且要注意此時Java接口的名稱和mapper文件的名稱要相同,否則會報異常,由于此時Mybatis會自動解析對應的接口和相應的配置文件,所以就不需要配置mapper文件的位置了。 1:接口和文件放在同一個包中如下: 在默認的情況下maven打包的時候,對于src/main/java目錄只打包源代碼,而不會打包其他文件。所以此時如果把對應的mapper文件放到src/main/java目錄下時,不會打包到最終的jar文件夾中,也不會輸出到target文件夾中,由于在進行單元測試的時候執行的是/target目錄下/test-classes下的代碼,所以在測試的時候也不會成功。 為了實現在maven默認環境下打包時,Mybatis的接口和mapper文件在同一包中,可以通過將接口文件放在src/main/java某個包中,而在src/main/resources目錄中建立同樣的包,這是一種約定優于配置的方式,這樣在maven打包的時候就會將src/main/java和src/main/resources相同包下的文件合并到同一包中。 在默認maven打包的環境下,不要將接口文件和mapper文件全部放到src/main/java,這樣也不會把mapper文件打包進去
在src/main/java和src/main/resources中相同的包名,相同的文件名,默認打包后的結構如下:
發現打包之后已經到同一個包下了。 而當你把接口和mapper文件全部放到src/main/java中同一包時,如下:
打包之后的文件如下:
發現編譯打包之后并沒有mapper文件,所以此時不管是測試還是正式執行都會出錯!! 更改maven構建配置 如果不想將接口和mapper文件分別放到src/main/java和src/main/resources中,而是全部放到src/main/java,那么在構建的時候需要指定maven打包需要包括xml文件,具體配置如下: [java] view plain copy src/main/java **/*.xml false 這樣在打包的時候也會將mapper文件打包到/target文件夾中。 2:接口和文件不在同一個包下 如果接口和mapper文件不在同一個包下,就不能進行自動掃描解析了,需要對接口和文件分別進行配置。 2.1 XML配置方式 2.1.1 不使用Spring 使用Mybatis的配置文件如下: [java] view plain copy
2.1.2 使用Spring 使用spring的配置文件如下: [java] view plain copy // ... 如果你也想在IT行業拿高薪,可以參加我們的訓練營課程,選擇最適合自己的課程學習,技術大牛親授,7個月后,進入名企拿高薪。我們的課程內容有:Java工程化、高性能及分布式、高性能、深入淺出。高架構。性能調優、Spring,MyBatis,Netty源碼分析和大數據等多個知識點。如果你想拿高薪的,想學習的,想就業前景好的,想跟別人競爭能取得優勢的,想進阿里面試但擔心面試不過的,你都可以來,群號為: 454377428 注:加群要求 1、具有1-5工作經驗的,面對目前流行的技術不知從何下手,需要突破技術瓶頸的可以加。 2、在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間內進修、跳槽拿高薪的可以加。 3、如果沒有工作經驗,但基礎非常扎實,對java工作機制,常用設計思想,常用java開發框架掌握熟練的,可以加。 4、覺得自己很牛B,一般需求都能搞定。但是所學的知識點沒有系統化,很難在技術領域繼續突破的可以加。 5.阿里Java高級大牛直播講解知識點,分享知識,多年工作經驗的梳理和總結,帶著大家全面、科學地建立自己的技術體系和技術認知! 6.小號或者小白之類加群一律不給過,謝謝。 目標已經有了,下面就看行動了!記住:學習永遠是自己的事情,你不學時間也不會多,你學了有時候卻能夠使用自己學到的知識換得更多自由自在的美好時光!時間是生命的基本組成部分,也是萬物存在的根本尺度,我們的時間在那里我們的生活就在那里!我們價值也將在那里提升或消弭!Java程序員,加油吧總結
以上是生活随笔為你收集整理的Mybatis中接口和对应的mapper文件位置配置详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WebView 文档 翻译
- 下一篇: 使用ITEXT操作PDF文件