`
yidongkaifa
  • 浏览: 4060135 次
文章分类
社区版块
存档分类
最新评论

一个系统要用多种数据库

 
阅读更多

context.xml

《?xml version="1.0" encoding="UTF-8"?》

《beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:jee="http://www.springframework.org/schema/jee"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

http://www.springframework.org/schema/jee

http://www.springframework.org/schema/jee/spring-jee-2.0.xsd"》


《jee:jndi-lookup id="mysqlds" jndi-name="java:comp/env/jdbc/mysqlds" /》

《jee:jndi-lookup id="orads" jndi-name="java:comp/env/jdbc/orads" /》


《bean id="dataSource" class="util.DynamicDataSource"》

《property name="targetDataSources"》

《map key-type="java.lang.String"》

《entry key="0" value-ref="mysqlds" /》

《entry key="1" value-ref="orads" /》

《/map》

《/property》

《property name="defaultTargetDataSource" ref="orads" /》

《/bean》

《/beans》


package util;


public class DbContextHolder {

private static final ThreadLocal contextHolder = new ThreadLocal();


public static void setDbType(String dbType) {

contextHolder.set(dbType);

}


public static String getDbType() {

return (String) contextHolder.get();

}


public static void clearDbType() {

contextHolder.remove();

}

}


package util;


import java.sql.SQLException;


import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;


public class DynamicDataSource extends AbstractRoutingDataSource {

//static Logger log = Logger.getLogger("DynamicDataSource");

@Override

protected Object determineCurrentLookupKey() {

// TODO

return DbContextHolder.getDbType();

}


@Override

public boolean isWrapperFor(Class 《?》 iface) throws SQLException {

// TODO Auto-generated method stub

return false;

}


@Override

public 《T》 T unwrap(Class 《T》 iface) throws SQLException {

// TODO Auto-generated method stub

return null;

}


}


测试程序:


DbContextHolder.setDbType("1");

UserDomain od = this.testService.queryUserAccount("admin");

System.out.println("username=="+od.getName());





DbContextHolder.setDbType("0");

d = this.testService.queryUserAccount("admin");


《bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"》

《!-- Connection Info --》

《property name="driverClassName" value="${jdbc.driver}" /》

《property name="url" value="${jdbc.url}" /》

《property name="username" value="${jdbc.username}" /》

《property name="password" value="${jdbc.password}" /》


《!-- Connection Pooling Info --》

《property name="initialSize" value="5" /》

《property name="maxActive" value="100" /》

《property name="maxIdle" value="30" /》

《property name="maxWait" value="1000" /》

《property name="poolPreparedStatements" value="false" /》

《property name="defaultAutoCommit" value="false" /》



《/bean》

《bean id="dataSource2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"》

《!-- Connection Info --》

《property name="driverClassName" value="${jdbc.driver}" /》

《property name="url" value="${jdbc.url}" /》

《property name="username" value="${jdbc.username}" /》

《property name="password" value="${jdbc.password}" /》


《!-- Connection Pooling Info --》

《property name="initialSize" value="5" /》

《property name="maxActive" value="100" /》

《property name="maxIdle" value="30" /》

《property name="maxWait" value="1000" /》

《property name="poolPreparedStatements" value="false" /》

《property name="defaultAutoCommit" value="false" /》



《/bean》


《bean id="dataSource" class="util.DynamicDataSource"》

《property name="targetDataSources"》

《map key-type="java.lang.String"》

《entry key="0" value-ref="dataSource1" /》

《entry key="1" value-ref="dataSource2" /》

《/map》

《/property》

《property name="defaultTargetDataSource" ref="dataSource1" /》

《/bean》

《/beans》

分享到:
评论

相关推荐

    SurveyKing(卷王) 是一个开源免费、功能强大、稳定的调查问卷系统,安装使用非常简单,支持多种数据库,内置 20 多种题

    SurveyKing(卷王) 是一个开源免费、功能强大、稳定的调查问卷系统,安装使用非常简单,支持多种数据库,内置 20 多种题型, 支持多人协作管理问卷。 Java是一种通用的,基于类的,面向对象的编程语言。它是用于...

    数据库系统概论第四版答案

    数据库是数据库系统的一个组成部分。但是在日常工作中人们常常把数据库系统简称为数据 库。希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库”,不要引 起混淆。 ( 4 )数据库管理系统( ...

    达梦数据库管理系统DM程序员手册

    DM 作为一个通用数据库管理系统,提 供了多种数据库访问接口,包括 ODBC、JDBC、API、OLEDB 以及嵌入方式等。本书详细介绍了 DM 的各种访问接口,相应开发环境的配置,以及一些开发用例。 本书的主要读者是从事过...

    二手房中介管理系统数据库系统设计

    在二手房信息管理工作中有大量的数据要处理,对数据库的设计要求做到:数据尽可能不重复,以最优方式为某个特定组织的多种应用服务。因此,对应二手房信息管理的需求以及系统功能的划分为本系统的数据库设计了七个...

    数据库课程设计工厂数据库

    某工厂需建立一个管理数据库存储以下信息: 1、 工厂包括厂名和厂长名。 2、 一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话。 3、 一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和...

    Delphi数据库系统开发课程设计(8个系统合集)图书馆管理系统、酒店管理系统、医院管理系统、教务管理系统等

    大学生Delphi数据库系统开发课程设计(8个系统合集),这是我们期末的课程设计,汇总在这里与大家一起分享,有需要的来下载吧!...采用的数据库系统有多种,总有你们想要的。亲测全部调试成功运行!

    数据库原理以及数据库一些基本知识

    为满足某一部门中多个用户多种应用的需要,按照...数据库仅是数据库系统的一个组成部分。 数据库系统的功能和特征 数据库系统由文卷系统发展而来。与文卷系统相比,这种系统具有数据、体系和控制三个方面的主要特征。

    数据库课程设计——农产品销售管理系统

    (2)系统要实现满足多种条件的统计分析功能,有些统计数据要采用图表的格式呈现; (3)整个系统采用2层结构。数据库系统采用可以采用SQL Server,MySQL,Oracle等,前台开发工具可以选用Java,PowerBuilder,VC++等...

    车站售票管理系统 广工数据库课设

    广工数据库课设选题个人方案:车站售票管理系统 //内有源码及安装说明书 ①具有方便、快速的售票功能,包括车票的购买和退票功能,情况提供多种查询和统计功能,如车次的查询、时刻表的查询等; ②能准确地了解售票...

    客户订购登记数据库设计

    一个公司希望为其客户订购行为建立一个数据库。一个消费者可以有一个或多个订单,每个订单可以有一种或多种商品。每个订单有一张发票,可以通过多种方式来支付,例如支票、信用卡或现金。 要求完成的主要任务: 1. ...

    数据库课程设计 服装销售系统

    (2)系统要实现满足多种条件的统计分析功能,有些统计数据要采用图表的格式呈现; (3)整个系统采用2层结构。数据库系统采用SQL Server,前台开发工具选用JAVA,PowerBuilder,VC++等; (4)销售管理系统所涉及的...

    数据库MIS系统 11.0

    一个强大的数据库开发工具,可迅速建立一套完整的数据库应用系统。只需有简单的数据库基础知识,任何人即可着手开发数据库应用软件,可以说,只要需要数据库应用的地方都可用它来开发,让你从繁琐的程序开发中脱离...

    学生学籍管理系统(数据库系统)(SQL).doc

    本系统的开发是设计一个学生学籍管理系统(数据库系统)。 2.2 用户需求 本系统是针对高等院校的学生学籍管理,因此学籍管理系统的用户包括系统管理员、 教师和学生。主要涉及系部信息、班级信息、任课教师信息、学生...

    工厂数据库管理系统.doc

    二、设计题目:工厂数据库管理系统 已知技术参数和设计要求: 需求说明及要求 题目:工厂数据库管理系统 某工厂需建立一个管理数据库存储以下信息: 1. 工厂包括厂名和厂长名。 2. 一个厂内有多个车间,每个车间有...

    04735数据库系统原理 2018手打版.one

    内容试读:数据、数据库、数据库管理系统和数据库系统是数据库中最常用的四个基本概念 1. 数据 数据(Data)是描述事物的符号记录,是指用物理符号记录下来的、可以鉴别的信息。数据有多种表现形式,可以是包括...

    数据库系统原理课程设计教学大纲.docx

    课程设计要求 : 在课程设计指导老师的指导下, 选定一个数 据库应用系统的题目, 完成数据库的设计和 应用系统设计,并提交相应文档。 数据库管理系统仅限 DM5、 Oracle 以及 MS SQL Server ; 数据库系统原理课程...

    基于JavaEE的 工资管理系统 (mysql数据库)

    本毕业设计的内容是设计并且实现一个基于Java Web技术的工资管理系统,故而系统主要以JavaEE技术作为开发基础,主要使用了Spring+SpringMvc+Mybatis等多种框架的结合使用,用myeclipse2014作为开发工具,以MYSQL作为...

    图书馆数据库管理系统

    图书馆数据库管理系统(难度系数0.8) 某个图书借阅管理数据库需要如下信息: 图书:图书号、书名、数量、存放位置...一个出版社可出版多种图书,但同一本书仅为一个出版社出版。 包括存储过程,触发器,视图,权限控制

Global site tag (gtag.js) - Google Analytics