mybatis主配置文件解读

119 阅读1分钟
在这里<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
                <property name="url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
                <property name="username" value="SCOTT"/>
                <property name="password" value="TIGER"/>
            </dataSource>
        </environment>
    </environments>
    <!--子配置文件-->
    <mappers>
        <mapper resource="com/zks/dao/EmpMapper.xml"/>
    </mappers>
</configuration>插入代码片

configation这个标签表示下面是配置信息。
environments这个标签下代表一下是jdbc的一些配置信息,有default这个属性,表示默认设置哪套jdbc开发环境
environemt这个标签下就是一套jdbc的开发环境.比如这是开发环境,然后再配一套实际使用时候的环境。
transactionManager type="[JDBC|MANAGED]",一般是jdbc表示事务管理托管给数据库本身。
dataSource type=“POOLED"有三种内建的数据源类型(也就是 type=”[UNPOOLED|POOLED|JNDI]")这里使用的是pooled数据库链接池。
在这里插入图片描述

尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。
所以,如果你想连接两个数据库,就需要创建两个 SqlSessionFactory 实例,每个数据库对应一个。而如果是三个数据库,就需要三个实例,依此类推,记起来很简单:
public class MyBatiesUtils {

//声明一个sqlSession的工厂
private static SqlSessionFactory sqlSessionFactory=null;
static{  //加载配置文件
    try {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        //尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境,这里默认的是配置环境中environments中default指定的环境,创建一个mybatis的链接工厂
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

/**
 * 封装好了,在主程序中调用即可获得数据库的链接
 * @return
 */
public static SqlSession getSqlSession(){
    return sqlSessionFactory.openSession();
}

}