在mybatis中动态路由sqlSessionFactory

时间:2016-12-13 07:46:31

标签: java spring datasource mybatis

是否可以选择Mapper在Mybatis中执行?

我正在使用动态路由数据源并将其作为参数提供给sqlSessionFactory - 它正在运行。

但问题是,不同的数据库可能需要其他SQL查询(差异非常小,但存在差异)。

是否可以创建动态路由sqlSessionFactory - 并向其提供其他包映射器?

1 个答案:

答案 0 :(得分:0)

这是获取会话工厂的方法: Reader reader = Resources.getResourceAsReader("mybatis-config.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);

mybatis-config.xml 中声明了一些内容,其中包括数据源和映射器。

然后创建另一个Mybatis配置文件(带有自己的日期源和映射器)并动态选择文件来构建会话工厂。您仍然可以在打开会话时提供连接,但我建议使用工厂提供的隐式连接,因为它将与映射器匹配。 (除非这是一个复杂的应用程序,您需要重用连接,例如:完成一个事务)