`
zjx2388
  • 浏览: 1303276 次
  • 性别: 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框架Spring管理Hibernate连接多个数据源配置文件

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

    配置MSSQL数据源连接步骤

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

    spring框架多数据源切换问题的解决

    首先,这个方案完全是在spring的框架下解决的,数据源依然配置在spring的配置文件中,sessionFactory依然去配置它的dataSource属性,它甚至都不知道dataSource的改变。 其次,实现简单,易于维护。这个方案虽然我说...

    2021数据仓库服务常见问题汇总-华为-51页.pdf

    5.8 GaussDB(DWS)/MySQL/SQL Server 的数据如何导入/迁移到GaussDB(DWS)(整库迁移)? 5.9 Oracle 数据如何导入/迁移到GaussDB(DWS)? 5.10 GDS 导入数据时是否支持使用公网/外网导入? 6 帐户、密码、权限 6.1 ...

    Web开发+java+ssh框架

    (例如,一个持久性类不能映射到多个表)其独有的界面和可怜的市场份额也让人不安,尽管如此,Hibernate 还是以其强大的发展动力减轻了 这些风险。其他的开源持久性框架也有一些,不过都没有 Hibernate 这样有市场...

    ssh(structs,spring,hibernate)框架中的上传下载

    第3~9行定义了一个数据源,其实现类是apache的BasicDataSource,第11~25行定义了Hibernate的会话工厂,会话工厂类用Spring提供的LocalSessionFactoryBean维护,它注入了数据源和资源映射文件,此外还通过一些键值对...

    基于SpringBoot的移动ssh项目(源码)

    在实际开发中,为了降低耦合性,提高代码复用性,我们一般会将web层与service分开...因为需要配置数据源,但是最终我们是需要student和teacher都依赖schoolservice的,如果我们将数据源配置写在controller层需要在每一

    SecureCRT串口网口调试工具绿色免安装

    SecureCRT将终端仿真程序同Secure Shell协议的强加密功能、多种认证选项和...SecureCRT采用了一个密码库,符合FIPS 140-2 加密需求,通过 X.509 数字认证提高了认证能力,可以轻松启动多个会话,改进了SSH代理功能。

    【最新版】Beekeeper-Studio-1.3.0.dmg【亲测可用】最好的SQL编辑器和数据库管理器

    打开数十个选项卡,以便您无需切换窗口即可串联编写多个查询和表。 轻松保存和组织常用查询,以便您可以在所有连接中一次又一次地使用它们。 表格也有自己的标签!使用我们的表格视图可以按列对结果进行排序和过滤。

    Linux FTP服务配置

     data_connection_timeout=120 设置数据传输超时时间  nopriv_user=ftpsecure 运行vsftpd需要的非特权系统用户默认是nobody  async_abor_enable=YES 是否允许运行特殊的ftp命令async ABOR.这里我翻译的不爽,...

    JAVA上百实例源码以及开源项目源代码

    第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用源码...

    路由器配置实例--100例

    这个功能检查每一个经过路由器的数据包,在路由器的路由表中若没有该数据包源IP地址的路由,路由器将丢弃该数据包。&lt;/P&gt;&lt;P&gt;2 启用OSPF路由协议的认证。默认的OSPF认证密码是明文传输的,建议启用MD5认证。并设置一定...

    CuteFTP9简易汉化版

    您可以监视多个文件夹或同步多个站点的文件夹同步向导将指导您完成设置。 文件夹Comparison-Compare文件夹同步之前。本地和远程文件夹内容可以根据情况相比,名称、日期、大小。不同突出显示的文件,可以选择和转移...

Global site tag (gtag.js) - Google Analytics