Mybatis(3.2)手册描述了三种配置Mappers的方式,如下: http://mybatis.github.io/spring/mappers.html
有没有办法扩展这三个过程中的任何一个,以便:
- Mapper XML 文件可以从类路径外部读取(即从文件系统位置)
- 可以“重新扫描”Mapper XML 文件,以查找自应用程序启动以来对已定义查询所做的更改
感谢您的建议
最佳答案
看起来(1)可以通过以下方式实现:
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception
{
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setMapperLocations(new Resource[]{resource1, resource2});
sessionFactory.setDataSource(getDataSource());
return sessionFactory.getObject();
}
就(2)而言,这似乎是 Mybatis 中非常想要但无法实现的功能。然而,一种解决方法是完全重新创建 SqlSession 并替换旧的 SqlSession - 这可以有效地获取对 XML 映射器所做的任何更改。
SqlSession sqlSession = applicationConfiguration.createSqlSessionFactory().openSession();
sqlSession.selectList(...)
希望这对某人有帮助。
关于java - 从文件系统(重新)扫描 Mybatis 映射器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21425386/