SSH配置多个数据源

来源:互联网 发布:淘宝店运营费用 编辑:程序博客网 时间:2024/05/16 09:44

SSH配置多个数据源

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

 

Mysql_hibernate.cfg.xml代码  收藏代码
  1. <?xml version='1.0' encoding='UTF-8'?>  
  2. <!DOCTYPE hibernate-configuration PUBLIC  
  3.           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
  4.                     
  5. <hibernate-configuration>  
  6.     <session-factory>  
  7.         <property name="show_sql">true</property>  
  8.         <property name="connection.driver_class">com.mysql.jdbc.Driver</property>  
  9.         <property name="connection.url">jdbc:mysql://172.16.11.9:3306/mytest?useUnicode=true&amp;characterEncoding=utf-8</property>  
  10.         <property name="connection.username">root</property>  
  11.         <property name="connection.password">rootroot</property>  
  12.           
  13.         <property name="hibernate.c3p0.max_size">20</property>  
  14.         <property name="hibernate.c3p0.min_size">1</property>  
  15.         <property name="hibernate.c3p0.timeout">5000</property>  
  16.         <property name="hibernate.c3p0.max_statements">100</property>  
  17.         <property name="hibernate.c3p0.idle_test_period">3000</property>  
  18.         <property name="hibernate.c3p0.acquire_increment">2</property>  
  19.         <!--   
  20.         <property name="dialect">org.hibernate.dialect.MySQLDialect</property>  
  21.          -->  
  22.         <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>  
  23.         <property name="hbm2ddl.auto">create</property>  
  24.           
  25.         <property name="hibernate.current_session_context_class">thread</property>  
  26.           
  27.            
  28.         <mapping resource="com/test/bean/User.hbm.xml"/>  
  29.     </session-factory>  
  30. </hibernate-configuration>  

 

Sqlserver_hibernate.cfg.xml代码  收藏代码
  1. <?xml version='1.0' encoding='UTF-8'?>  
  2. <!DOCTYPE hibernate-configuration PUBLIC  
  3.           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
  4.           "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
  5.                     
  6. <hibernate-configuration>  
  7.     <session-factory>  
  8.     <property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>  
  9.     <property name="connection.url">jdbc:microsoft:sqlserver://172.16.11.20:1433;DatabaseName=new_cmcc;SelectMethod=cursor</property>  
  10.     <property name="connection.username">sa</property>  
  11.     <property name="connection.password">111</property>  
  12.     <property name="connection.pool_size">100</property>  
  13.     <property name="show_sql">true</property>  
  14.     <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>  
  15.       
  16.     <mapping resource="com/test/bean/User.hbm.xml"/>  
  17.     </session-factory>  
  18. </hibernate-configuration>  

 

Oracle_hibernate.cfg.xml代码  收藏代码
  1. <?xml version='1.0' encoding='UTF-8'?>  
  2. <!DOCTYPE hibernate-configuration PUBLIC  
  3.           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
  4.           "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
  5.                     
  6. <hibernate-configuration>  
  7.     <session-factory>  
  8.     <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>  
  9.         <property name="connection.url">jdbc:oracle:thin:@172.16.11.14:1521:epip</property>  
  10.         <property name="connection.username">capitel</property>  
  11.         <property name="connection.password">123456</property>  
  12.         <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>  
  13.         <property name="show_sql">false</property>  
  14.           
  15.         <mapping resource="com/test/bean/User.hbm.xml"/>  
  16.     </session-factory>  
  17. </hibernate-configuration>  

 

 

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

 

 

Applicationcontext.xml代码  收藏代码
  1. <!-- My Sql  -->  
  2. <bean id="mySqlSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">     
  3.     <property name="configLocation">     
  4.       <value>WEB-INF/classes/mysql_hibernate.cfg.xml</value>     
  5.     </property>     
  6. </bean>     
  7. <bean id="mySqlTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">     
  8.     <property name="sessionFactory">     
  9.       <ref local="mySqlSessionFactory" />     
  10.     </property>     
  11. </bean>    
  12.   
  13. <!-- SQL Server  -->  
  14. <bean id="sqlServerSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">     
  15.     <property name="configLocation">     
  16.       <value>WEB-INF/classes/sqlserver_hibernate.cfg.xml</value>     
  17.     </property>     
  18. </bean>     
  19. <bean id="sqlServerTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">     
  20.     <property name="sessionFactory">     
  21.       <ref local="sqlServerSessionFactory" />     
  22.     </property>     
  23. </bean>   
  24.   
  25. <!-- Oracle  -->  
  26. <bean id="oracleSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">     
  27.     <property name="configLocation">     
  28.       <value>WEB-INF/classes/oracle_hibernate.cfg.xml</value>     
  29.     </property>     
  30. </bean>     
  31. <bean id="oracleTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">     
  32.     <property name="sessionFactory">     
  33.       <ref local="oracleSessionFactory" />     
  34.     </property>     
  35. </bean>  

 

 

 

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

 

 

Applicationcontext.xml代码  收藏代码
  1. <!--1、mysql数据源 事务管理拦截器-->    
  2.     <tx:advice id="mySqlTxAdvice" transaction-manager="mySqlTransactionManager">     
  3.     <tx:attributes>     
  4.         <tx:method name="find*" read-only="true"/>     
  5.         <tx:method name="get*" read-only="true"/>       
  6.         <tx:method name="notx*" propagation="NEVER"/>     
  7.         <tx:method name="*" rollback-for="自定义Exception"/>     
  8.     </tx:attributes>     
  9.     </tx:advice>     
  10. <!--2、sqlserver数据源 事务管理拦截器 -->    
  11.     <tx:advice id="sqlServerTxAdvice" transaction-manager="sqlServerTransactionManager">     
  12.     <tx:attributes>     
  13.         <tx:method name="find*" read-only="true"/>     
  14.         <tx:method name="get*" read-only="true"/>       
  15.         <tx:method name="notx*" propagation="NEVER"/>     
  16.         <tx:method name="*" rollback-for="自定义Exception"/>     
  17.     </tx:attributes>     
  18.     </tx:advice>  
  19.       
  20. <!--3、oracle数据源 事务管理拦截器-->     
  21.     <tx:advice id="oracleTxAdvice" transaction-manager="oracleTransactionManager">     
  22.     <tx:attributes>     
  23.         <tx:method name="find*" read-only="true"/>     
  24.         <tx:method name="get*" read-only="true"/>       
  25.         <tx:method name="notx*" propagation="NEVER"/>     
  26.         <tx:method name="*" rollback-for="自定义Exception"/>     
  27.     </tx:attributes>     
  28.     </tx:advice>     
  29.          
  30. <!--配置多数据源的事务拦截器-->     
  31.     <bean id="serviceAutoProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">     
  32.        <property name="beanNames">     
  33.             <list>     
  34.                 <value>*Service</value>     
  35.             </list>     
  36.         </property>     
  37.         <property name="interceptorNames">     
  38.             <list>     
  39.                 <value>mySqlTxAdvice</value>  
  40.                 <value>sqlServerTxAdvice</value>  
  41.                 <value>oracleTxAdvice</value>      
  42.             </list>     
  43.         </property>     
  44. </bean>  

 

 

 

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

 

 

 

Java代码  收藏代码
  1.  <bean id="userDao" class="com.test.dao.impl.UserDAOImpl" scope="singleton">  
  2.     <property name="sessionFactory">  
  3.         <ref bean="oracleSessionFactory"/>  
  4.     </property>  
  5. </bean>  
  6.   
  7. <bean id="emplyDAO" class=" com.test.dao.dao.impl.Pb_EmplyDAOImpl" scope="singleton">  
  8.     <property name="sessionFactory">  
  9.         <ref bean="mySqlSessionFactory"/>  
  10.     </property>  
  11. </bean>  
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 邮箱里面的文件过期了怎么办 邮箱发的文件过期了怎么办 邮箱发送的文件过期怎么办 小米4s开不开机怎么办 小米平板关机后开不开机怎么办 公司老板跑路了社保怎么办 公司老板跑路社保怎么办 公司被公安局查封社保怎么办 小米四开不了机怎么办 小米的手机后壳裂了怎么办 公司没钱拖欠员工社保怎么办 小米note充不进去电怎么办 公司欠社保没交怎么办 公司不给转社保怎么办 小米note充电特别慢怎么办 小米小米note2充电慢怎么办 小米note充电红灯不闪烁怎么办 小米note充电红灯闪烁怎么办 小米note2突然充电慢怎么办 充电小米note2手机闪烁怎么办 小米6x上网慢怎么办 小米5数据上网慢怎么办 小米5c照相模糊怎么办 小米5充电很慢怎么办 iphone图库照片没了怎么办 我想通过微信号得到手机号怎么办 给充电宝充电慢怎么办 小米5s充不了电怎么办 百度网盘下载速度慢怎么办 负债累累没有钱没有资源怎么办 好福利密码忘了怎么办 手机无法申请百度网盘怎么办 魅族手机运行慢怎么办 阿里小宝卡流量用完了怎么办 阿里宝卡流量用完了怎么办 百度网盘本地空间不足怎么办 百度网盘空间不足怎么办 百度网盘容量不够怎么办 百度网盘内存不够怎么办 百度网盘储存空间不足怎么办 百度网盘手机号注销了怎么办