`

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

    博客分类:
  • ssh
阅读更多

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.完成

 

分享到:
评论

相关推荐

    SSH配置多个数据源

    总结来说,配置SSH框架以支持多个数据源需要对Spring的bean管理、Hibernate的数据库连接以及Struts2的请求处理有深入理解。这个过程包括定义和配置多个DataSource bean,调整Hibernate和Struts2的配置以适应不同的...

    配置MSSQL数据源连接步骤

    配置MSSQL数据源连接步骤 [很卡,设置下了分辨率了] 1.打开MSSQL ,首先确定你这MSSQL是否为启动状态,从这看,应该是没有启动的 那好,现在启动SQL 好,现在已经启动 2.配置数据源 开始-&gt;控制面版-&gt;性能和维护...

    Ssh多数据源.doc

    总结起来,SSH多数据源解决方案利用Spring的动态数据源路由功能,结合c3p0连接池组件,实现了在同一个应用中管理多个数据库的能力。这使得系统能够灵活地处理来自不同数据源的数据,提高了系统的健壮性和可扩展性。...

    ssh配置多个数据库

    1. 动态配置多数据源 我们可以使用一个类来表示多个数据源,例如: ```java public class DataSourceConst { public static final String Admin = "admin"; public static final String User = "user"; } ``` 2...

    SSH 框架集成连接Oracle数据库的配置

    在实际开发中,可能还需要考虑其他因素,比如数据库连接池的配置、数据源的性能优化、异常处理等。同时,随着技术的发展,现在的项目可能会更倾向于使用Spring Boot,它简化了许多配置步骤,但基本原理和配置方式...

    ssh框架在application.xml中配置数据源所需jar

    --读取properties资源文件配置,如deploy.properties--&gt; class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt; &lt;value&gt;classpath:/deploy.properties &lt;!--...

    数据源和连接池

    在Tomcat中配置连接池与数据源通常是在`server.xml`文件中进行的。以下是一些具体的配置示例: 1. **配置连接池**: - 添加`&lt;Resource&gt;`标签,指定连接池的参数。 - 例如: ```xml &lt;Resource name="jdbc/MyDS" ...

    Struts数据源驱动,ssha配置缺少架包

    总之,"Struts数据源驱动,ssha配置缺少架包"的问题,需要从检查项目依赖、配置数据源、整合Struts、Spring和Hibernate等多个角度进行排查和解决。确保所有必需的库都已添加,并正确配置了相关的数据源和框架集成。...

    ssh2连接多个数据库

    SSH2框架在连接多个数据库时,主要依赖于Spring框架的灵活配置能力,以及Hibernate对多数据源的支持。在实际应用中,我们可以通过以下步骤实现这一目标: 1. **配置Tomcat的数据源** 在Tomcat服务器的`conf/...

    SSH配置文件

    除了数据库连接配置,SSH框架还需要其他配置,如Action类的映射、Service和DAO的声明、事务管理等。Struts2的配置文件通常为struts.xml,包含Action配置;Spring的配置文件(如 applicationContext.xml)会定义Bean...

    这是一个可以自定义参数的使用Ssh2连接远程服务器的连接池

    当多个任务需要并发执行时,连接池可以预先创建一定数量的连接并保持它们打开,以便任务可以立即使用,而不是每次都新建连接。这降低了网络延迟,提高了系统整体性能。在这个Ssh2连接池中,开发者可以设置池的大小、...

    基于ssh的proxool连接池配置

    1. 使用Spring的`DriverManagerDataSource`作为数据源类,这是Spring提供的一个简单的数据源实现,它不支持连接池,但可以用于配置Proxool。 2. 设置`driverClassName`属性为`org.logicalcobwebs.proxool....

    ssh连接两个数据库

    - `sqlDataSource`: 使用C3P0连接池配置SQL Server的数据源。 - `driverClass`: 数据库驱动类。 - `jdbcUrl`: 数据库URL。 - `user`: 用户名。 - `password`: 密码。 - `autoCommitOnClose`: 自动提交设置。 ...

    SSH各种数据库连接测试(struts2)

    在SSH中,配置Oracle连接时,需要添加ojdbc驱动,设置数据源,然后在Hibernate配置中指定Oracle方言。此外,确保数据库服务正常启动,并且SSH应用有正确的访问权限。 5. SQL Server数据库连接: 对于SQL Server,...

    JavaEE SSH 配置文件集

    例如,你可以在这里声明数据库数据源、事务管理器、DAO接口及其实现类等,并配置它们之间的依赖关系。 - **applicationContext-dao.xml**:专门用于配置数据访问层的Bean,通常包括Hibernate SessionFactory、DAO...

Global site tag (gtag.js) - Google Analytics