package lhp.example.junit;
import static org.junit.Assert.assertEquals;
import java.sql.DatabaseMetaData;
import lhp.example.context.ContextHolder;
import lhp.example.context.DBType;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class ServiceTest {
private ApplicationContext context;
//三个数据源的URL
private String dataSource1_URL = "jdbc:mysql://127.0.0.1:3306/dec";
private String dataSource2_URL = "jdbc:mysql://127.0.0.1:3306/lms";
private String dataSource3_URL = "jdbc:odbc:accessTest";
private SessionFactory mysqlSessionFactory;
private SessionFactory aceessSessionFactory;
@Before
public void setUp() throws Exception {
// 选择数据源初始化spring
ContextHolder.setDbType(DBType.dataSource1);
//
String[] xmlFiles = new String[] {
"applicationContext-dataSource.xml",
"applicationContext-hibernate.xml",
"applicationContext-spring.xml" };
//
context = new ClassPathXmlApplicationContext(xmlFiles);
//
mysqlSessionFactory = (SessionFactory) context.getBean("mysqlSessionFactory");
aceessSessionFactory = (SessionFactory) context.getBean("aceessSessionFactory");
}
@SuppressWarnings("deprecation")
@Test
public void mysqlDataSourceTest() {
try {
Session mysqlSession = mysqlSessionFactory.openSession();
// 获得数据库元数据
DatabaseMetaData meatData = mysqlSession.connection().getMetaData();
// 默认启动数据源 dataSource1
//断言当前数据源URL是否是dataSource1的URL
assertEquals(dataSource1_URL, meatData.getURL());
// 切换到数据源 dataSource2
ContextHolder.setDbType(DBType.dataSource2);
mysqlSession = mysqlSessionFactory.openSession();
meatData = mysqlSession.connection().getMetaData();
//断言当前数据源URL是否是dataSource2的URL
assertEquals(dataSource2_URL, meatData.getURL());
} catch (Exception e) {
e.printStackTrace();
}
}
@SuppressWarnings("deprecation")
@Test
public void accessDataSourceTest() {
try {
Session accessSession = aceessSessionFactory.openSession();
// 获得数据库元数据
DatabaseMetaData meatData = accessSession.connection().getMetaData();
//断言当前数据源URL是否是dataSource3的URL
assertEquals(dataSource3_URL, meatData.getURL());
} catch (Exception e) {
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
一套Spring+Hibernate的多个数据库切换的源码
共17个文件
xml:6个
class:4个
java:4个
5星 · 超过95%的资源 需积分: 9 29 下载量 33 浏览量
2014-03-03
09:51:01
上传
评论
收藏 11KB RAR 举报
温馨提示
一套Spring+Hibernate的多个数据库切换的源码,导入eclipse里,加入相关的包就能运行。
资源推荐
资源详情
资源评论
收起资源包目录
DynamicSwitchingDataSources.rar (17个子文件)
DynamicSwitchingDataSources
.project 403B
src
lhp
example
context
DBType.java 88B
DynamicDataSource.java 500B
ContextHolder.java 358B
junit
ServiceTest.java 2KB
.settings
org.eclipse.jdt.core.prefs 629B
config
applicationContext-dataSource.xml 2KB
applicationContext-hibernate.xml 2KB
applicationContext-spring.xml 711B
.classpath 772B
bin
lhp
example
context
DynamicDataSource.class 921B
ContextHolder.class 983B
DBType.class 1010B
junit
ServiceTest.class 3KB
applicationContext-dataSource.xml 2KB
applicationContext-hibernate.xml 2KB
applicationContext-spring.xml 711B
共 17 条
- 1
资源评论
- witslzy2015-01-31东西不错,能够实现多数据源的切换
- luobo_java2017-02-14有用的,还行。
- chenlifang_20072015-01-08挺不错的东西,推荐
27146736
- 粉丝: 4
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功