追隨Java
          簡單的事情重復做,就會產(chǎn)生累積效應(yīng)!
          posts - 260,  comments - 338,  trackbacks - 0

          新的系統(tǒng)有可能會要用到遺留系統(tǒng)的數(shù)據(jù),所以有時就會要連接兩個以上的數(shù)據(jù)庫。
          那么怎么來處理這一問題呢?
          原理:創(chuàng)建類似的文件(兩個數(shù)據(jù)庫就有兩個類似用spring+hibernate的配置文件)
          下面以webwork+spring+hibernate來說明。
          1)web.xml

          <?xml version="1.0" encoding="UTF-8"?>
          <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">

              
          <display-name>shipment</display-name>

              
          <!-- Define the basename for a resource bundle for I18N -->
              
          <context-param>
                  
          <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
                  
          <param-value>messages</param-value>
              
          </context-param>
          <!--加載spring+hibernate的配置文件-->
            
              <context-param>
                  
          <param-name>contextConfigLocation</param-name>
                  
          <param-value>
                      /WEB-INF/applicationContext*.xml
                      /WEB-INF/action-servlet.xml
                  
          </param-value>
              
          </context-param>
          <!-- 把webwork與spring結(jié)合起來-->
              
          <listener>
                  
          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
              
          </listener>
              
          <listener>
                  
          <listener-class>com.opensymphony.xwork.spring.SpringObjectFactoryListener</listener-class>
              
          </listener>
          <!-- 所有的請求響應(yīng)的類-->
              
          <servlet>
                  
          <servlet-name>action</servlet-name>
                  
          <servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher</servlet-class>
                  
          <load-on-startup>1</load-on-startup>
              
          </servlet>

            
              <servlet-mapping>
                  
          <servlet-name>action</servlet-name>
                  
          <url-pattern>*.html</url-pattern>
              
          </servlet-mapping>

              
          <welcome-file-list>
                  
          <welcome-file>login.jsp</welcome-file>
              
          </welcome-file-list>

          </web-app>

            2) xwork.xml用來配置action
          <!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" 
          "http://www.opensymphony.com/xwork/xwork-1.0.dtd"
          >

          <xwork>
                
          <!-- Include webwork defaults (from WebWork-2.1 JAR). -->
                
          <include file="webwork-default.xml"/>
                
                
          <!-- Configuration for the default package. -->
                
          <package name="default" extends="webwork-default">
                  
          <interceptors>
                      
          <!-- Interceptor to catch exceptions and display mapped exception result -->
                      
          <interceptor name="exceptionHandler" class="exceptionInterceptor"/>
                      
          <interceptor-stack name="defaultExceptionStack">
                          
          <interceptor-ref name="defaultStack"/>
                          
          <interceptor-ref name="exceptionHandler"/>
                      
          </interceptor-stack>
                  
          </interceptors>
                  
          <!-- Default interceptor stack. --> 
                  
          <default-interceptor-ref name="defaultExceptionStack"/> 
                  
                  
          <global-results> 
                      
          <result name="dataAccessFailure">dataAccessFailure.jsp</result>
                  
          </global-results> 
                     
          <!--- shipment2 -->
                   
           <action name = "login" class= "loginAction" method="login">
                               
          <result name="success" type ="dispatcher">shipmentv.jsp</result>
                               
          <result name="failuer" type="dispatcher">login.jsp</result>
                     
          </action>
                 
           </package>
          </xwork>
                 3)action-servlet.xml配置action與調(diào)用DAO
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
              "http://www.springframework.org/dtd/spring-beans.dtd"
          >

          <beans>
              <bean id="loginAction" class="com.legend.shipment.web.LoginAction" singleton="false">
                      
          <property name="shipmentManager" ref="shipmentManager"/>
               
          </bean>

          </beans>
               4)applicationContext.xml配置事務(wù)管理 
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
              "http://www.springframework.org/dtd/spring-beans.dtd"
          >

          <beans>
              
          <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
                  
          <property name="location" value="classpath:jdbc.properties"/>
              
          </bean>

              
          <!-- Transaction template for Managers, from:
                   http://blog.exis.com/colin/archives/2004/07/31/concise-transaction-definitions-spring-11/ 
          -->
              
          <bean id="txProxyTemplate" abstract="true"
                  class
          ="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
                  
          <property name="transactionManager"><ref bean="transactionManager"/></property>
                  
          <property name="transactionAttributes">
                      
          <props>
                          
          <prop key="save*">PROPAGATION_REQUIRED</prop>
                          
          <prop key="remove*">PROPAGATION_REQUIRED</prop>
                          
          <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
                      
          </props>
                  
          </property>
              
          </bean>

              
          <bean id="shipmentManager" parent="txProxyTemplate">
                  
          <property name="target">
                      
          <bean class="com.legend.shipment.service.impl.ShipmentManagerImpl">
                          
          <property name="shipmentDAO" ref="shipmentDAO"/>
                      
          </bean>
                  
          </property>
              
          </bean>
          </beans>
                   5)applicationContext-hibernate.xml配置hibernate
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
              "http://www.springframework.org/dtd/spring-beans.dtd"
          >

          <beans>
              
          <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
                  
          <property name="driverClassName" value="${jdbc.driverClassName}"/>
                  
          <property name="url" value="${jdbc.url}"/>
                  
          <property name="username" value="${jdbc.username}"/>
                  
          <property name="password" value="${jdbc.password}"/>
              
          </bean>

              
          <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
                  
          <property name="dataSource" ref="dataSource"/>
                  
          <property name="mappingResources">
                      
          <list>
                          
          <value>com/legend/shipment/TworkCost.hbm.xml</value>
                          
          <value>com/legend/shipment/TworkConfig.hbm.xml</value>
                      
          </list>
                  
          </property>
                  
          <property name="hibernateProperties">
                      
          <props>
                          
          <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
                          
          <prop key="hibernate.show_sql">true</prop>
                      
          </props>
                  
          </property>
              
          </bean>

              
          <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
                  
          <property name="sessionFactory" ref="sessionFactory"/>
              
          </bean>

              
          <bean id="shipmentDAO" class="com.legend.shipment.dao.hibernate.ShipmentDAOHibernate">
                  
          <property name="sessionFactory" ref="sessionFactory"/>
              
          </bean>
          </beans>
                 6)jdbc.properties數(shù)據(jù)庫連接信息
          jdbc.driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver
          jdbc.url
          =jdbc:microsoft:sqlserver://192.168.1.6:1433;DatabaseName=dg_labour;SelectMethod=cursor;
          jdbc.username=sa
          jdbc.password
          =test
            如果要連接兩個數(shù)據(jù)庫的話,那么就加多一個類似applicationContext-hibernate.xml文件,一個類似applicationContext.xml的文件,并在jdbc.properties文件中添加另一個數(shù)據(jù)庫的連接信息。當然要作小的修改。比如說:你在applicationContext-another.xml加了一個名為workManager的事務(wù)代理。你想把它添加到loginAction中去,那么就把action_server.xml文件修改成
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
              "http://www.springframework.org/dtd/spring-beans.dtd"
          >

          <beans>
              
          <bean id="loginAction" class="com.legend.shipment.web.LoginAction" singleton="false">
                      
          <property name="shipmentManager" ref="shipmentManager"/>
              <property name="workManager" ref="workManager"/>   
               
          </bean>

          </beans>
          在java程序中就可以通過setWorkManager()方法自己設(shè)置了,也就可以在LoginAction類中引用了。
          可能說的不夠詳細,但提供了一個思路。
          posted on 2005-09-08 16:10 Harryson 閱讀(5316) 評論(0)  編輯  收藏 所屬分類: HibernateSpring

          <2005年9月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          常用鏈接

          留言簿(10)

          隨筆分類(319)

          AJAX

          Coffee House

          CSS

          Java

          JavaScript

          Open Source

          ProjectManagement

          友情Blog

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 青海省| 长葛市| 吴堡县| 安阳市| 建瓯市| 景泰县| 永兴县| 镇沅| 乌审旗| 泰宁县| 南丰县| 安化县| 炉霍县| 察雅县| 任丘市| 望都县| 广西| 宝兴县| 阳春市| 六安市| 苗栗县| 昆明市| 中方县| 锡林郭勒盟| 北流市| 济宁市| 伊宁县| 临湘市| 衡东县| SHOW| 沙洋县| 新绛县| 吉首市| 岳普湖县| 盐源县| 河曲县| 孙吴县| 丹东市| 泰安市| 德州市| 佛冈县|