美文网首页
把mybatis的mapper配置xml文件直接放在接口包内

把mybatis的mapper配置xml文件直接放在接口包内

作者: 有料美拓 | 来源:发表于2021-03-19 08:35 被阅读0次

1.问题:

使用mybatis进行开发的时候,一般用通用mapper或者mybatis plus来简化我们的开发加速编码的进程,但是还是少不了要进行xml的配置,以书写更加灵活,更加复杂的sql。一般我们的处理会将mapper配置的xml文件放入resources目录的某个目录然后配置数据源的时候指定一下目录的位置。但是实际在开发过程中,特别是在没有上线的时候,更快速的找到这个文件。进行快速的修订,其实也比较重要,当然我们可以使用插件来解决,这里我介绍另外一种方案,实际使用提升工作效率的成效也不错。我选择把xml配置文件放在mybatis定义的接口包内。这样就可以改接口和改xml文件,左侧的文件树几乎不跳动,来回切换,毕竟会节约一些时间。具体的做法如下。

1.配置SqlSessionFactory的时候,指定一下资源目录

 需要提前准备好DataSource
    @Bean
    @Primary
    public SqlSessionFactory sqlSessionFactoryOne(DataSource dataSource) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        //设置数据源
        bean.setDataSource(dataSource);
//→→这句比较重要扫描包内的xml文件用于接口的实现
        Resource[] resources = new PathMatchingResourcePatternResolver().getResources("classpath*:cn/mtttt/core/dao/*.xml");
        // 设置mybatis的xml所在位置
        bean.setMapperLocations(resources);
        return bean.getObject();
    }
}

2.pom.xml文件中定义一下,编译的时候将包内的xml文件一并打包进jar包

如果这里不进行设定的话,会有找不到xml文件资源的情况,因为默认maven打包的时候只将编译的class和resource目录中的文件放进jar包内。而对包内其他的文件一律忽略了。除非特殊指定一下。

<build>
    <!--    需要将xml资源文件一并打包进编译后的结果中    -->
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>
    </resources>
</build>

3.将mybatis的xml文件移入dao包

就可以愉快的开始编程了。

相关文章

网友评论

      本文标题:把mybatis的mapper配置xml文件直接放在接口包内

      本文链接:https://www.haomeiwen.com/subject/veamcltx.html