您的位置:首页 > 数据库

Mybatis支持连接多数据库

2017-06-30 14:53 1151 查看
MyBatis 支持配置多个 dataSource 环境,可以将应用部署到不同的环境上,如 DEV(开发环境),TEST(测试换将),

QA(质量评估环境),UAT(用户验收环境),PRODUCTION(生产环境),可以通过将默认 environment 值设置成想要的

environment id 值。

在上述的配置中,默认的环境 environment 被设置成 development。当需要将程序部署到生产服务器上时,你不需

要修改什么配置,只需要将默认环境 environment 值设置成生产环境的 environment id 属性即可。

有时候,我们可能需要在相同的应用下使用多个数据库。比如我们可能有 SHOPPING-CART 数据库来存储所有的订单

明细;使用 REPORTS 数据库存储订单明细的合计,用作报告。

如果你的应用需要连接多个数据库,你需要将每个数据库配置成独立的环境,并且为每一个数据库创建一个

SqlSessionFactory。

<environments default="shoppingcart">
<environment id="shoppingcart">
<transactionManager type="MANAGED" />
<dataSource type="JNDI">
<property name="data_source" value="java:comp/jdbc/ ShoppingcartDS" />
</dataSource>
</environment>
<environment id="reports">
<transactionManager type="MANAGED" />
<dataSource type="JNDI">
<property name="data_source" value="java:comp/jdbc/ReportsDS" />
</dataSource>
</environment>
</environments>


我们可以如下为每个环境创建一个 SqlSessionFactory:

InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");

SqlSessionFactory defaultSqlSessionFactory = new SqlSessionFactoryBuilder().
build(inputStream);

SqlSessionFactory cartSqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStre
am, "shoppingcart");

SqlSessionFactory reportSqlSessionFactory = new SqlSessionFactoryBuilder().
build(inputStream, "reports");


创建 SqlSessionFactory 时,如果没有明确指定环境 environment id,则会使用默认的环境 environment 来创

建。在上述的源码中,默认的 SqlSessionFactory 便是使用 shoppingcart 环境设置创建的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis 数据库