(重新)从文件系统扫描Mybatis映射器

时间:2014-01-29 08:08:15

标签: java spring mybatis

Mybatis(3.2)手册介绍了三种配置Mappers的方法,如下所示: http://mybatis.github.io/spring/mappers.html

有没有办法延长这三个程序中的任何一个,以便:

  1. 可以从类路径外部(即从文件系统位置)读取映射器XML文件
  2. 映射器XML文件可以“重新扫描”,以便自应用程序启动以来对已定义的查询所做的更改
  3. 感谢您的任何建议

1 个答案:

答案 0 :(得分:0)

看起来(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并替换旧的 - 这有效地获取了对XML Mappers所做的任何更改。

 SqlSession sqlSession = applicationConfiguration.createSqlSessionFactory().openSession();
 sqlSession.selectList(...)

希望这有助于某人。