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包
就可以愉快的开始编程了。