`
zjx2388
  • 浏览: 1330769 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

SSH配置多个数据源

    博客分类:
  • J2EE
阅读更多

SSH配置多个数据源

1. 编写hibernate的数据库配置文

 

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
                  
<hibernate-configuration>
	<session-factory>
    	<property name="show_sql">true</property>
    	<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    	<property name="connection.url">jdbc:mysql://172.16.11.9:3306/mytest?useUnicode=true&amp;characterEncoding=utf-8</property>
    	<property name="connection.username">root</property>
    	<property name="connection.password">rootroot</property>
    	
    	<property name="hibernate.c3p0.max_size">20</property>
    	<property name="hibernate.c3p0.min_size">1</property>
    	<property name="hibernate.c3p0.timeout">5000</property>
    	<property name="hibernate.c3p0.max_statements">100</property>
    	<property name="hibernate.c3p0.idle_test_period">3000</property>
    	<property name="hibernate.c3p0.acquire_increment">2</property>
    	<!-- 
    	<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    	 -->
    	<property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
    	<property name="hbm2ddl.auto">create</property>
    	
    	<property name="hibernate.current_session_context_class">thread</property>
    	
    	 
    	<mapping resource="com/test/bean/User.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

 

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
                  
<hibernate-configuration>
	<session-factory>
	<property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
	<property name="connection.url">jdbc:microsoft:sqlserver://172.16.11.20:1433;DatabaseName=new_cmcc;SelectMethod=cursor</property>
	<property name="connection.username">sa</property>
	<property name="connection.password">111</property>
	<property name="connection.pool_size">100</property>
	<property name="show_sql">true</property>
	<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
	
	<mapping resource="com/test/bean/User.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

 

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
                  
<hibernate-configuration>
	<session-factory>
	<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
		<property name="connection.url">jdbc:oracle:thin:@172.16.11.14:1521:epip</property>
		<property name="connection.username">capitel</property>
		<property name="connection.password">123456</property>
		<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
		<property name="show_sql">false</property>
		
		<mapping resource="com/test/bean/User.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

 

 

2.   spring配置文件(applicationContext.xml)中配置Hibernate数据源(以测试过的三个数据库oralce,mysql,server sql为例)

 

 

<!-- My Sql  -->
<bean id="mySqlSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">   
    <property name="configLocation">   
      <value>WEB-INF/classes/mysql_hibernate.cfg.xml</value>   
    </property>   
</bean>   
<bean id="mySqlTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">   
    <property name="sessionFactory">   
      <ref local="mySqlSessionFactory" />   
    </property>   
</bean>  

<!-- SQL Server  -->
<bean id="sqlServerSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">   
    <property name="configLocation">   
      <value>WEB-INF/classes/sqlserver_hibernate.cfg.xml</value>   
    </property>   
</bean>   
<bean id="sqlServerTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">   
    <property name="sessionFactory">   
      <ref local="sqlServerSessionFactory" />   
    </property>   
</bean> 

<!-- Oracle  -->
<bean id="oracleSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">   
    <property name="configLocation">   
      <value>WEB-INF/classes/oracle_hibernate.cfg.xml</value>   
    </property>   
</bean>   
<bean id="oracleTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">   
    <property name="sessionFactory">   
      <ref local="oracleSessionFactory" />   
    </property>   
</bean>

 

 

 

3. spring配置文件(applicationContext.xml)中配置spring的事务拦截器(AOP):

 

 

<!--1、mysql数据源 事务管理拦截器-->  
    <tx:advice id="mySqlTxAdvice" transaction-manager="mySqlTransactionManager">   
    <tx:attributes>   
        <tx:method name="find*" read-only="true"/>   
        <tx:method name="get*" read-only="true"/>     
        <tx:method name="notx*" propagation="NEVER"/>   
        <tx:method name="*" rollback-for="自定义Exception"/>   
	</tx:attributes>   
    </tx:advice>   
<!--2、sqlserver数据源 事务管理拦截器 -->  
    <tx:advice id="sqlServerTxAdvice" transaction-manager="sqlServerTransactionManager">   
    <tx:attributes>   
        <tx:method name="find*" read-only="true"/>   
        <tx:method name="get*" read-only="true"/>     
        <tx:method name="notx*" propagation="NEVER"/>   
        <tx:method name="*" rollback-for="自定义Exception"/>   
    </tx:attributes>   
    </tx:advice>
    
<!--3、oracle数据源 事务管理拦截器-->   
    <tx:advice id="oracleTxAdvice" transaction-manager="oracleTransactionManager">   
    <tx:attributes>   
        <tx:method name="find*" read-only="true"/>   
        <tx:method name="get*" read-only="true"/>     
        <tx:method name="notx*" propagation="NEVER"/>   
        <tx:method name="*" rollback-for="自定义Exception"/>   
    </tx:attributes>   
    </tx:advice>   
	   
<!--配置多数据源的事务拦截器-->   
    <bean id="serviceAutoProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">   
       <property name="beanNames">   
            <list>   
                <value>*Service</value>   
            </list>   
        </property>   
        <property name="interceptorNames">   
            <list>   
                <value>mySqlTxAdvice</value>
                <value>sqlServerTxAdvice</value>
                <value>oracleTxAdvice</value>    
            </list>   
        </property>   
</bean>

 

 

 

4. DAO需要使用哪个数据,就配置相应的sessionFactory,:

 

 

 

 <bean id="userDao" class="com.test.dao.impl.UserDAOImpl" scope="singleton">
	<property name="sessionFactory">
		<ref bean="oracleSessionFactory"/>
	</property>
</bean>

<bean id="emplyDAO" class=" com.test.dao.dao.impl.Pb_EmplyDAOImpl" scope="singleton">
	<property name="sessionFactory">
		<ref bean="mySqlSessionFactory"/>
	</property>
</bean>

 

 

 

2
3
分享到:
评论

相关推荐

    SSH框架中的多数据源配置.DOC

    在SSH框架中,多数据源配置是指在一个应用程序中使用多个数据源的配置方法。这种配置可以使得应用程序能够连接多个数据库,实现数据的集成和共享。 在SSH框架中,多数据源配置可以通过使用Spring框架的数据源配置来...

    ssh配置多个数据库

    -- 配置多个数据源 --&gt; &lt;!-- 数据源相同部分 --&gt; ${drivers}" /&gt; &lt;!-- 198 上的数据库 --&gt; ${DefaultDBUrl.url}" /&gt; ${DefaultDBUrl.user}" /&gt; &lt;!-- ... --&gt; ``` 实现原理 在上面的实现中,我们使用了 ...

    SSH动态切换数据源

    每个数据源可以是单独的DataSource bean,也可以是JNDI查找的结果。然后,将这些数据源映射到之前定义的标识符上。 在Struts2中,你可以通过拦截器或者ActionContext来设置当前的上下文信息,这些信息随后会被...

    针对SSH框架Spring管理Hibernate连接多个数据源配置文件

    该配置文件连接的是两个数据库结构相同的数据源,其他比如数据库结构不原理也可行。本人在遇到此问题时上网搜了很多答案结果都不怎么如意,有的太深奥不过思想很好,有的又太不给力,后来自己慢慢研究配置成功后想与...

    Ssh多数据源.doc

    在配置方面,通常我们会创建多个数据源实例,每个实例对应一个特定的数据库。例如,这里使用了c3p0连接池组件(com.mchange.v2.c3p0.ComboPooledDataSource),它提供了高效且可靠的数据库连接管理。c3p0通过连接池...

    SSH框架调用多个数据库

    1. **配置数据源**:在Spring的配置文件中,我们需要为每个数据库创建一个数据源bean。例如,可以使用`org.apache.commons.dbcp.BasicDataSource`或`com.zaxxer.hikari.HikariDataSource`。每个数据源应包含连接URL...

    SSH配置过程,介绍SSH的详细配置过程

    例如,使用`ControlMaster`特性实现多连接共享一个SSH会话,从而减少建立多个连接的时间开销。 - **安全性增强**:为了提高SSH服务的安全性,可以考虑以下措施: - 使用非标准端口(如2222),以避免常见的扫描...

    ssh2连接多个数据库

    使用Spring框架进行数据源和SessionFactory的配置,为每一个数据库配置一个数据源,并且在SessionFactory中指定对应的数据源。例如: ```xml &lt;property name="jndiName" value="java:/comp/env/jdbc/wcleye1"&gt;...

    SSH动态连接多个数据库

    首先,Spring框架提供了DataSource接口,它是数据库连接的抽象,可以配置多个数据源以连接不同的数据库。在Spring的配置文件中,我们需要为每个数据库定义一个DataSource实例,通常通过`&lt;bean&gt;`标签来创建。例如: ...

    SSH框架数据添加

    同时,还需要为每个数据表创建对应的实体类,并使用Hibernate的注解(如`@Entity`, `@Table`, `@Column`等)来描述数据表结构。 在实际操作中,我们可能会有一个test2.sql文件,这是SQL脚本文件,通常用于初始化...

    ssh双数据源登录.rar

    4. **Hibernate配置**:在Hibernate的配置中,为每个数据源创建一个SessionFactory,并在需要时注入相应的SessionFactory。 5. **Struts整合**:确保Struts的Action类能够获取到正确的Service实例,进而使用正确...

    ssh双数据源登录实例

    - 创建两个数据源配置,例如`dataSource1`和`dataSource2`,分别对应不同的数据库连接信息。 - 使用`@Qualifier`注解来指定在注入bean时选择哪个数据源。 2. **配置Hibernate**: - 为每个数据源创建单独的...

    SSH配置详细步骤及异常处理

    SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在Java开发中,SSH通常指的是Struts、...记住,实践是检验真理的唯一标准,多动手尝试和调试,是掌握SSH配置的最好方法。

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

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

    ssh集成 ssh集成

    例如,可以为不同的服务器配置多个密钥,以便轻松切换,或者限制特定用户的SSH访问权限。 **SSH集成实践** 1. **与Git集成**:在使用Git进行版本控制时,SSH密钥允许开发者安全地推送到或拉取自远程仓库,而无需...

    SSH2.0配置详细手册.pdf

    - **设备角色**:设备可以配置为SSH服务器,接收多个SSH客户端的连接;也可以配置为SSH客户端,与支持SSH服务器功能的设备建立连接,实现在本地设备上通过SSH登录远程设备。 - **支持版本**:作为SSH服务器时,支持...

    ssh配置文件

    在SSH整合项目中,通常会有一个总的配置文件,例如 applicationContext.xml,用于配置Spring的bean,包括Struts2的Action、Service、DAO等。同时,Struts2的配置文件会引用Spring的bean,使得Action可以直接注入...

Global site tag (gtag.js) - Google Analytics