• 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。

  • 相关阅读:
    Struts2的struts.properties文件在哪儿啊?
    StrutsPrepareAndExecuteFilter的作用
    【转】Eclipse配置Struts2问题:ClassNotFoundException: org...dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    怎么找到MyEclipse->add struts capabilities
    图像金字塔
    浅析人脸检测之Haar分类器方法
    SIFT算法学习
    OpenCV3.1使用SIFT
    OpenCV头文件包含问题
    OpenCV例程实现人脸检测
  • 原文地址:https://www.cnblogs.com/arrows/p/10338679.html
Copyright © 2020-2023  润新知