MyBatis 3的XML配置文件中,<environments> 元素用于配置数据库环境。一个MyBatis配置可以包含多个环境,每个环境都有其对应的数据源(dataSource)和事务管理器(transactionManager)。

以下是一个环境配置的基本示例:
<environments default="development">
    <environment id="development">
        <!-- 配置事务管理器 -->
        <transactionManager type="JDBC"/>
        
        <!-- 配置数据源 -->
        <dataSource type="POOLED">
            <property name="driver" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/your_database"/>
            <property name="username" value="your_username"/>
            <property name="password" value="your_password"/>
        </dataSource>
    </environment>
</environments>

在这个例子中,有一个名为 "development" 的环境,它使用了 JDBC 事务管理器(type="JDBC")和 Pooled 数据源(type="POOLED")。你可以配置多个不同的环境,然后通过 default 属性指定默认使用的环境。

配置其他类型的数据源

MyBatis支持多种数据源类型,例如 UNPOOLED、JNDI 等。以下是一个使用 UNPOOLED 数据源的示例:
<environments default="development">
    <environment id="development">
        <transactionManager type="JDBC"/>
        
        <!-- 使用 UNPOOLED 数据源 -->
        <dataSource type="UNPOOLED">
            <property name="driver" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/your_database"/>
            <property name="username" value="your_username"/>
            <property name="password" value="your_password"/>
        </dataSource>
    </environment>
</environments>

多数据源配置

如果你的应用需要连接多个数据库,你可以配置多个 <environment> 元素,然后在 SqlSessionFactory 的创建时选择使用哪个环境。这样,你可以在不同的环境中使用不同的数据源和事务管理器。
// 创建SqlSessionFactory时指定使用的环境
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, "development");

这里的 "development" 是环境的标识,对应于配置文件中 <environment> 元素的 id 属性。

通过配置数据库环境,你可以灵活地切换数据源和事务管理器,以满足不同环境下的需求。


转载请注明出处:http://www.zyzy.cn/article/detail/7002/MyBatis