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

标签 java spring mybatis

Mybatis(3.2)手册描述了三种配置Mappers的方式,如下: http://mybatis.github.io/spring/mappers.html

有没有办法扩展这三个过程中的任何一个,以便:

  1. Mapper XML 文件可以从类路径外部读取(即从文件系统位置)
  2. 可以“重新扫描”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/

相关文章:

java - 缺少依赖 JBoss AS 7.1.1

java - 将 DAO 类声明为 Spring Autowiring 的类成员或方法参数?

java - spring-boot:仅构建部分测试上下文

java - 传递 InsertProvider mybatis-annotation 列表 - 非法参数异常

java - Jboss AS 6.1.0 与 Java7 的握手超时

java - 将数字停在一定范围内

Java加载和处理大数据

java - 使用 Spring 框架存储上传图像的最合适位置

java - 从JPA到MyBatis : Composite Key?

java - jboss 如何启用 MyBatis SQL 日志?