關於idea的目錄, mybatis裡mapper無法用resource獲取 和 駝峰命令規則
阿新 • • 發佈:2020-10-12
<mappers> <mapper resource="com/choco/dao/BlogMapper.xml"/> </mappers>
我在resources下面建立和 main/java同樣的目錄, 通過resource獲取到xml檔案, 但是不可以, 我很模糊, 因為之前我是可以的.
解決辦法:
- idea裡面一次建立例如:com.choco.dao包 和 分三次建立是一樣的. 雖然可能無法展開, 但確實效果是一樣的
- 如果你的mapper介面和對映xml檔案不在一個目錄, 比如你把xml檔案放在了resources下面, 那麼你需要在pom.xml新增這段程式碼.
src/main/resources
/*.properties
/.xml
.properties
src/main/java
**/
**/*.xml
true
這是因為sqlSessionFactoryBean.setMapperLocations(resolver.getResource(packageSearchPath));
即sqlSessionFactoryBean呼叫的方法是getResource, 這個方法從類的根路徑下獲取檔案.
而在mybatis裡面, mian/java下面類的根路勁為 target/classes
所以只要你的根路勁下面沒有xml對映檔案, 那麼config檔案裡面,註冊mapper就無法成功.
在setting裡面沒有開啟mapUnderscoreToCamelCase, 依然可以識別, 不知道這是不是idea自動做了.