environment - iBatis - 使用 XML 选择环境

标签 environment ibatis xml-configuration

我在 ibatis-config.xml 中有这个配置

<configuration>
    <properties resource="collector.properties"/>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${dev.jdbc.driver}" />
                <property name="url" value="${dev.jdbc.url}" />
            </dataSource>
        </environment>
        <environment id="test">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${test.jdbc.driver}" />
                <property name="url" value="${test.jdbc.url}" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
    </mappers>
</configuration>

如图所示,它将从 <environment id="development"> 加载数据源

问题:是否可以在运行时切换使用 <environment id="test">不修改XML?例如 - 我有一个我正在使用的测试文件 SqlSessionFactory并希望以编程方式将其设置为使用测试环境?

最佳答案

SqlSessionFactoryBuilder.build() 方法可以选择 XML 中的特定环境。

例如,

private Reader reader;
private SqlSessionFactory sqlSessionFactorys;
private SqlSession session;

reader = Resources.getResourceAsReader("ibatis-config.xml");

sqlSessionFactorys = new SqlSessionFactoryBuilder().build(reader, "test");
testSession = sqlSessionFactorys.openSession(); // test env

sqlSessionFactorys = new SqlSessionFactoryBuilder().build(reader, "development");
devSession = sqlSessionFactorys.openSession(); // dev env

关于environment - iBatis - 使用 XML 选择环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2649193/

相关文章:

php - docker-compose.yml 环境变量到 php 环境变量

jboss - 从 Web 容器外部访问数据源(通过 JNDI)

ruby-on-rails - 如何切换到旧版本的 ruby​​/rails 环境?

java - Ibatis 获取 hashmap 的集合

java - 使用MapperFactoryBean时如何获取当前 session ?

maven - java.lang.NoSuchMethodError : org. springframework.beans.factory.xml.XmlReaderContext.getResourceLoader()Lorg/springframework/core/io/ResourceLoader

java - 无法解析 XML 配置 Spring 应用程序中的占位符

java - 配置spring xml配置命名空间,避免idea警告

php - mysqli_fetch_assoc()期望参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

R - 创建一个单独的环境,其中 source() 一个 R 脚本,这样后者就不会影响 "caller"环境