把mybatis的mapper配置xml文件直接放在接口包內(nèi)

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包

就可以愉快的開始編程了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容