【发布时间】:2017-04-28 04:59:14
【问题描述】:
Mybatis中可以选择Mapper执行吗?
我正在使用动态路由数据源并将其作为参数提供给 sqlSessionFactory - 它正在工作。
然而,问题是不同的数据库可能需要其他 SQL 查询(非常小的差异,但是差异)。
是否可以创建动态路由 sqlSessionFactory - 并给他们其他包映射器?
【问题讨论】:
标签: java spring datasource mybatis
Mybatis中可以选择Mapper执行吗?
我正在使用动态路由数据源并将其作为参数提供给 sqlSessionFactory - 它正在工作。
然而,问题是不同的数据库可能需要其他 SQL 查询(非常小的差异,但是差异)。
是否可以创建动态路由 sqlSessionFactory - 并给他们其他包映射器?
【问题讨论】:
标签: java spring datasource mybatis
这是获取会话工厂的方式:
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
在 mybatis-config.xml 中声明了一些东西,其中包括数据源和映射器。
然后创建另一个 Mybatis 配置文件(带有自己的日期源和映射器)并动态选择文件来构建会话工厂。您仍然可以在打开会话时提供连接,尽管我建议使用工厂提供的隐式连接,因为它会与映射器匹配。 (除非这是一个复杂的应用程序,您需要重用连接,例如:完成事务)
【讨论】: