MyBatis同时操作多个库

来源:互联网 发布:js圆形进度条插件 编辑:程序博客网 时间:2024/06/05 04:21

1:mybatis-config文件

    <properties resource="config/jdbc.properties" /> <!-- 读取jdbc.properties,同时操作多个库 -->
    <environments default="p"> <!-- default属性选择此次开发时需要的数据库环境的id值即可 -->
        <environment id="p1">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${p.driver}" />
                <property name="url" value="${p.url}" />
                <property name="username" value="${p.user}" />
                <property name="password" value="${p.pass}" />
            </dataSource>
        </environment>

        <environment id="p2">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${d.driver}" />
                <property name="url" value="${d.url}" />
                <property name="username" value="${d.user}" />
                <property name="password" value="${d.pass}" />
            </dataSource>
        </environment>
    </environments>

   <!-- 配置Mapper -->
    <mappers>
        <mapper resource="mapper/mapper.xml" />
    </mappers>


2:jdbc.properties 配置你需要连接的库

    p1.driver:com.mysql.jdbc.Driver
    p1.url:jdbc:mysql://192.168.60.205:3306/zhiyequan? useUnicode=true&amp;characterEncoding=utf-8
    p1.user:root
    p1.pass:123456

   p2.driver:com.mysql.jdbc.Driver
   p2.url:jdbc:mysql://192.168.60.205:3306/job1001sms? useUnicode=true&amp;characterEncoding=utf-8
   p2.user:root
   p2.pass:123456

3:MyBatisUtil类

    配置枚举

    public static enum DataSourceEnvironment {
        p1, p2    // 枚举大小写必须与Mybatis.xml中environment id相同
    }


   /**
     * jdbc
     * @param environment 用来分辨操作那个库
     * @return
     */
    public static SqlSessionFactory getSqlSessionFactory(DataSourceEnvironment environment) {
        SqlSessionFactory sqlSessionFactory = null;
        
        String resource = "config/mybatis.xml";

        Reader reader = null;
        try {
            reader = Resources.getResourceAsReader(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader, environment.name());
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
        return sqlSessionFactory;
    }


好了, 配置就完成了。