SSH配置多数据源(JDBC连接)

0.把用到的 JDBC 包导进来

1.创建类DataSourceMap 

 

public class DataSourceMap {  
	public static final String ds1= "ds1";
	
	public static final String ds2= "ds2";
}
 

 

2.创建类CustomerContextHolder 

 

 

import java.util.Map;
import com.FrameWork.db.interf.IDAO;
public class CustomerContextHolder {
	private    Map<String,IDAO> map =null;

	public Map<String, IDAO> getMap() {
		return map;
	}

	public void setMap(Map<String, IDAO> map) {
		this.map = map;
	}
}
 

 

3.配置连接池

 

<!-- 程序自身连接池 -->
	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName"
			value="oracle.jdbc.driver.OracleDriver" />
		<property name="url"
			value="jdbc:oracle:thin:@192.168.1.188:1521:orcl" />
		<property name="username" value="ddd" />
		<property name="password" value="xxxx" />
		<property name="maxActive" value="30" />
		<property name="maxIdle" value="30" />
		<property name="maxWait" value="1000" />
		<property name="defaultAutoCommit" value="true" />
		<property name="removeAbandoned" value="true" />
		<property name="removeAbandonedTimeout" value="60" />
	</bean>
	<!-- sql server 2000 car数据库 -->
	<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
		<property name="url" value="jdbc:microsoft:sqlserver://192.168.1.109:1433;DatabaseName=car"/>
        <property name="username" value="sa"/>
        <property name="password" value="sa"/>
        <property name="maxActive" value="30"/>
        <property name="maxIdle" value="30"/>
        <property name="maxWait" value="1000"/>
        <property name="defaultAutoCommit" value="true"/>
        <property name="removeAbandoned" value="true"/>
        <property name="removeAbandonedTimeout" value="60"/>
	</bean>
	<!-- sql server 2000 gps数据库 -->
	<bean id="dataSource2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
		<property name="url" value="jdbc:microsoft:sqlserver://192.168.1.109:1433;DatabaseName=gps"/>
        <property name="username" value="sa"/>
        <property name="password" value="sa"/>
        <property name="maxActive" value="30"/>
        <property name="maxIdle" value="30"/>
        <property name="maxWait" value="1000"/>
        <property name="defaultAutoCommit" value="true"/>
        <property name="removeAbandoned" value="true"/>
        <property name="removeAbandonedTimeout" value="60"/>
	</bean>
 

 

4.设置数据库连接池

 

 

<!-- Generic IDao - can be used when doing standard CRUD-->
	<bean id="idao" class="com.FrameWork.db.impl.DAOImpl">
		<property name="dataSource" ref="dataSource" />
	</bean>
	
	 
	<bean id="idao1" class="com.FrameWork.db.impl.DAOImpl">
		<property name="dataSource" ref="dataSource1" />
	</bean>
	 
	<bean id="idao2" class="com.FrameWork.db.impl.DAOImpl">
		<property name="dataSource" ref="dataSource2" />
	</bean>

 

5.分配连接池

 

 

<!-- Construct Map -->
	<bean id="nameMap" class="java.util.HashMap">
		<constructor-arg>
			<map>
				<entry key="ds1" value-ref="idao1"/>
				<entry key="ds2" value-ref="idao2"/>
			</map>
		</constructor-arg>
	</bean>

	<bean id="customerContextHolder" class="com.FrameWork.dynamicDataSource.CustomerContextHolder">
		<property name="map">
    			<ref bean="nameMap"></ref>
  		</property>
	</bean>

 

6.配置sessionFactory

 

 

<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">  <!-- 这里要注意-->
			<ref bean="dataSource" />
		</property>
		<property name="lobHandler" ref="lobHandler" />
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.Oracle9Dialect
				</prop>

				<!-- 
					<prop key="hibernate.show_sql">true</prop>
					<prop key="hibernate.format_sql">true</prop>
				-->
			</props>

		</property>


		<!--Spring Blob数据类型支持--><!--
			<property name="lobHandler" ref="oracleLobHandler" />
		--><!--hbm.xml映射文件在此处注册-->
		<property name="mappingResources">
			<list>
				<!-- 库房管理  -->
				<value>
					com/czkj/event/wzgl/mapping/TWzDepot.hbm.xml
				</value>
				<value>
					com/czkj/event/wzgl/mapping/TWzCkgly.hbm.xml
				</value>
				....
			</list>
		</property>
	</bean>

 

7.spring 注入

 

 

<!-- 数据同步 -->
	<bean id="synCarImp" class="com.czkj.service.syn.SynCarImp">
		<property name="dynDataSource" ref="customerContextHolder"></property>
		<property name="idao" ref="idao"></property>
		<property name="ihibernatedao" ref="ihibernatedao"></property>
		<property name="sctx" ref="SystemContext"></property>
	</bean>

 

8.java代码调用  类中声明

 

 

// 配置多数据源操作  声明
	private CustomerContextHolder dynDataSource = null;
	public void setDynDataSource(CustomerContextHolder dynDataSource) {
		this.dynDataSource = dynDataSource;
	}
 

9.调用

 

 

public void test(){
		List list = dynDataSource.getMap().get(DataSourceMap.ds2).queryforlist("select * from FuncMain ");
		System.out.println(list);
	}

 

10.完成

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值