首页 > 其他 > 详细

【Mybatis多数据源的配置实验】

时间:2016-05-25 02:22:41      阅读:293      评论:0      收藏:0      [点我收藏+]

mybatis多数据源在项目开发中经常用到,有时候可能是为了主从读写分离,有时候可能是需要调用不同的业务库数据,因此需要使用到Mybatis多数据源配置

?

1、步骤一:配置多数据源sit1、dev2

?<environments default="development">

? ? ? ? <environment id="sit1">

? ? ? ? ? ? <transactionManager type="JDBC" />

? ? ? ? ? ? <!-- 配置数据库连接信息 -->

? ? ? ? ? ? <dataSource type="POOLED">

? ? ? ? ? ? ? ? <property name="driver" value="com.mysql.jdbc.Driver" />

? ? ? ? ? ? ? ? <property name="url" value="jdbc:mysql://localhost:3306/test" />

? ? ? ? ? ? ? ? <property name="username" value="root" />

? ? ? ? ? ? ? ? <property name="password" value="123" />

? ? ? ? ? ? </dataSource>

? ? ? ? </environment>

? ? ? ? <environment id="dev2">

? ? ? ? ? ? <transactionManager type="JDBC" />

? ? ? ? ? ? <!-- 配置数据库连接信息 -->

? ? ? ? ? ? <dataSource type="POOLED">

? ? ? ? ? ? ? ? <property name="driver" value="com.mysql.jdbc.Driver" />

? ? ? ? ? ? ? ? <property name="url" value="jdbc:mysql://localhost:3306/mysql" />

? ? ? ? ? ? ? ? <property name="username" value="root" />

? ? ? ? ? ? ? ? <property name="password" value="123" />

? ? ? ? ? ? </dataSource>

? ? ? ? </environment>

? ? </environments>

? ?<!-- mapping 文件路径配置 --> ?

? ? <mappers> ?

? ? ? ? <mapper resource="user.xml" /> ?

? ? </mappers> ?

?

2、部署二:准备不同的数据库表,test -->tb_test ??, Mysql -->db

?

C:\Documents and Settings\Administrator>mysql -uroot -p

Enter password: ***

Welcome to the MySQL monitor. ?Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.0.51b-community-nt-log MySQL Community Edition (GPL)

?

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the buffer.

?

mysql> show databases;

+--------------------+

| Database ? ? ? ? ? |

+--------------------+

| information_schema |

| mysql ? ? ? ? ? ? ?|

| phpmyadmin ? ? ? ? |

| test ? ? ? ? ? ? ? |

+--------------------+

4 rows in set (0.03 sec)

?

mysql> use test;

Database changed

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| tb_file ? ? ? ?|

| tb_test ? ? ? ?|

+----------------+

2 rows in set (0.02 sec)

?

mysql> use mysql;

Database changed

mysql> show tables;

+---------------------------+

| Tables_in_mysql ? ? ? ? ? |

+---------------------------+

| columns_priv ? ? ? ? ? ? ?|

| db ? ? ? ? ? ? ? ? ? ? ? ?|

| func ? ? ? ? ? ? ? ? ? ? ?|

| help_category ? ? ? ? ? ? |

| help_keyword ? ? ? ? ? ? ?|

| help_relation ? ? ? ? ? ? |

| help_topic ? ? ? ? ? ? ? ?|

| host ? ? ? ? ? ? ? ? ? ? ?|

| proc ? ? ? ? ? ? ? ? ? ? ?|

| procs_priv ? ? ? ? ? ? ? ?|

| tables_priv ? ? ? ? ? ? ? |

| time_zone ? ? ? ? ? ? ? ? |

| time_zone_leap_second ? ? |

| time_zone_name ? ? ? ? ? ?|

| time_zone_transition ? ? ?|

| time_zone_transition_type |

| user ? ? ? ? ? ? ? ? ? ? ?|

+---------------------------+

17 rows in set (0.00 sec)

?

3、步骤三:编写SQL配置文件

<select id="getDb1" resultType="java.lang.Integer">

? ? select count(*) from tb_test

? ? </select>

? ??

? ? <select id="getDb2" resultType="java.lang.Integer">

? ? select count(*) from db

? ? </select>

?

4、步骤四:编写java测试程序

?

package mybatistest.mybatisdemo;

import java.io.InputStream;

import mybatistest.mybatisdemo.vo.User;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

?

public class MultiDataSource {

/**

* Mybatis多数据源的配置实验?

* <properties>

* ? <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

* </properties>

* <dependencies>

* ?<dependency>

* ? ?<groupId>org.mybatis</groupId>

* ? ?<artifactId>mybatis</artifactId>

* ? ?<version>3.3.0</version>

* ?</dependency>

* ?<dependency>?

* ? ?<groupId>mysql</groupId>

* ? ?<artifactId>mysql-connector-java</artifactId>

* ? ?<version>5.1.18</version>

* ?</dependency>

* </dependencies>

*?

* @param args

*/

public static void main(String[] args) {

? ? ? ? ? ?// 创建能执行映射文件中sql的sqlSession

? ? ? ? ? ?SqlSession session = getSessionFactory("sit1").openSession();

? ? ? ? ? ?String namespace = "cn.com.test.userinfo.";// 映射sql的标识字符串

? ? ? ? ? ? ?// 执行查询返回一个唯一user对象的sql

? ? ? ? ? ?int count = session.selectOne(namespace + "getDb1");

? ? ? ? ? System.out.println("=====total count tb_test====" + count);

?

? ? ? ? ? ? ?// 创建能执行映射文件中sql的sqlSession

? ? ? ? ? ? ?SqlSession session2 = getSessionFactory("dev2").openSession();

? ? ? ? ? ? count = session2.selectOne(namespace + "getDb2");

? ? ? ? ? ?System.out.println("=====total count=db====" + count);

}

?

public static SqlSessionFactory getSessionFactory(String environmentId) {

? ? ? ? ?// mybatis的配置文件

? ? ? ? ? ? String resource = "conf.xml";

? ? ? ? ? // 使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)

? ? ? ? ? InputStream is = MultiDataSource.class.getClassLoader().getResourceAsStream(resource);

? ? ? ? ? // 构建sqlSession的工厂

? ? ? ? ?SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is, environmentId);

? ? ? ? ?return sessionFactory;

}

}

?

5、步骤五:实验验证

?1)准备数据库表

bubuko.com,布布扣
?

?2)实验结果

bubuko.com,布布扣
?

?

?

【Mybatis多数据源的配置实验】

原文:http://gaojingsong.iteye.com/blog/2298220

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!