1.問題:
使用mybatis進行開發(fā)的時候,一般用通用mapper或者mybatis plus來簡化我們的開發(fā)加速編碼的進程,但是還是少不了要進行xml的配置,以書寫更加靈活,更加復(fù)雜的sql。一般我們的處理會將mapper配置的xml文件放入resources目錄的某個目錄然后配置數(shù)據(jù)源的時候指定一下目錄的位置。但是實際在開發(fā)過程中,特別是在沒有上線的時候,更快速的找到這個文件。進行快速的修訂,其實也比較重要,當(dāng)然我們可以使用插件來解決,這里我介紹另外一種方案,實際使用提升工作效率的成效也不錯。我選擇把xml配置文件放在mybatis定義的接口包內(nèi)。這樣就可以改接口和改xml文件,左側(cè)的文件樹幾乎不跳動,來回切換,畢竟會節(jié)約一些時間。具體的做法如下。
1.配置SqlSessionFactory的時候,指定一下資源目錄
需要提前準(zhǔn)備好DataSource
@Bean
@Primary
public SqlSessionFactory sqlSessionFactoryOne(DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
//設(shè)置數(shù)據(jù)源
bean.setDataSource(dataSource);
//→→這句比較重要掃描包內(nèi)的xml文件用于接口的實現(xiàn)
Resource[] resources = new PathMatchingResourcePatternResolver().getResources("classpath*:cn/mtttt/core/dao/*.xml");
// 設(shè)置mybatis的xml所在位置
bean.setMapperLocations(resources);
return bean.getObject();
}
}
2.pom.xml文件中定義一下,編譯的時候?qū)鼉?nèi)的xml文件一并打包進jar包
如果這里不進行設(shè)定的話,會有找不到xml文件資源的情況,因為默認(rèn)maven打包的時候只將編譯的class和resource目錄中的文件放進jar包內(nèi)。而對包內(nèi)其他的文件一律忽略了。除非特殊指定一下。
<build>
<!-- 需要將xml資源文件一并打包進編譯后的結(jié)果中 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
3.將mybatis的xml文件移入dao包
就可以愉快的開始編程了。