MyBatis配置项--配置环境(environments)

MyBatis可以配置成适应多种环境,这种机制有助于将SQL映射应用于多种数据库之中,现实情况下有多种理由需要这么做。

例如,开发、测试和生产环境需要有不同的配置;或者共享相同Schema的多个生产数据库,想使用相同的SQL映射。许多类似的用例。

但注意:尽管可以配置多个环境,每个SqlSessionFactory实例只能选择其一。

所以,如果想要连接两个数据库,就需要创建两个SqlSessionFactory实例,每个数据库对应一个。而如果是三个数据库,就需要三个实例,以此类推,记起来很简单:

·每个数据库对应一个SqlSessionFactory实例

为了指定创建哪种环境,只要将它作为可选的参数传递给SqlSessionFactoryBuilder即可。可以接受环境配置的两个方法签名是:

 

SqlSessionFactory  factory  =  new  SqlSessionFactoryBuilder().build(reader, environment);

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment, properties);

 

 

 

 

 

如果忽略了环境参数,那么默认环境将会被加载,如下所示:

 

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, properties);

 

 

 

 

环境元素定义了如何配置环境:

 

<environments default="development">

  <environment id="development">

    <transactionManager type="JDBC">

      <property name="..." value="..."/>

    </transactionManager>

    <dataSource type="POOLED">

      <property name="driver" value="${driver}"/>

      <property name="url" value="${url}"/>

      <property name="username" value="${username}"/>

      <property name="password" value="${password}"/>

    </dataSource>

  </environment>

</environments>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

注意关键点:

·默认的环境ID(比如:default=“development”)

·每个environment元素定义的环境ID(比如:id=”development”)

·事务管理器的配置(比如:type=”JDBC”)

·数据源的配置(比如:type=”POOLED”)

默认的环境和环境ID是自解释的,因此一目了然。可以对环境随意命名,但一定要保证默认的环境ID要匹配其中一个环境ID。

转载于:https://www.cnblogs.com/arrows/p/10338679.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值