乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Spring Roo兩個數(shù)據(jù)庫的配置 | Easyigloo

       richsky 2012-04-23

      兩個數(shù)據(jù)庫,spring,roo,j2ee
      經(jīng)常可以在Spring Roo論壇上看到一個經(jīng)常的問題。問題是“如何配置使得應(yīng)用可以處理兩個數(shù)據(jù)庫”。

      這對Spring Roo來說,是足夠麻煩的問題,這個問題涉及了JPA和Spring持久化棧。所以,我相信這對所有的Spring開發(fā)社區(qū)都要處理這個問題。

      假設(shè)讀者是Java開發(fā)人員,對Spring Roo有些熟悉。我關(guān)注如何獲取配置。查看幫助,請訪問http://www./roo。

      解決問題

      創(chuàng)建了以下最小的Roo項目。修改配置,每個實體都來自于不同的獨立的數(shù)據(jù)庫。

      project --topLevelPackage org.pragmatikroo.twodb
      persistence setup --provider HIBERNATE --database MYSQL --userName <username> --password <password> --databaseName twodbone
      logging setup --level DEBUG --package PERSISTENCE
      entity --class ~.domain.DbOne
      field string --fieldName name
      entity --class ~.domain.DbTwo
      field string --fieldName name
      perform clean
      perform eclipse
      exit
      

      原始Database.properties文件

      database.password=<password>
      database.url=jdbc\:mysql\://localhost\:3306/twodb
      database.username=<username>
      database.driverClassName=com.mysql.jdbc.Driver
      

      修改后的Database.properties文件

      database.password1=<password1>
      database.url1=jdbc\:mysql\://localhost\:3306/twodbone
      database.username1=<username1>
      database.password2=<password1>
      database.url2=jdbc\:mysql\://localhost\:3306/twodbtwo
      database.username2=<username2>
      database.driverClassName=com.mysql.jdbc.Driver
      

      基本上,我已經(jīng)從原始文件復(fù)制了一個拷貝定義第二個數(shù)據(jù)庫。對其他文件的模式也是重復(fù)的。

      修改后的Persistence.xml文件

      <persistence-unit name="persistenceUnit1" transaction-type="RESOURCE_LOCAL">
            <provider>org.hibernate.ejb.HibernatePersistence</provider>
            <class>org.josean.twodb.domain.DbOne</class>
            <exclude-unlisted-classes>true</exclude-unlisted-classes>
            <properties>
                  <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
                  <!-- value="create" to build a new database on each run; value="update" to modify an existing database; value="create-drop" means the same as "create" but also drops tables when Hibernate closes; value="validate" makes no changes to the database -->
                  <property name="hibernate.hbm2ddl.auto" value="update"/>
                  <property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy"/>
                  <property name="hibernate.connection.charSet" value="UTF-8"/>
                  <!-- Uncomment the following two properties for JBoss only -->
                  <!-- property name="hibernate.validator.apply_to_ddl" value="false" /-->
                  <!-- property name="hibernate.validator.autoregister_listeners" value="false" /-->
                  </properties>
      </persistence-unit>
      <persistence-unit name="persistenceUnit2" transaction-type="RESOURCE_LOCAL">
            <provider>org.hibernate.ejb.HibernatePersistence</provider>
            <class>org.josean.twodb.domain.DbTwo</class>
            <exclude-unlisted-classes>true</exclude-unlisted-classes>
            <properties>
                  <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
                  <!-- value="create" to build a new database on each run; value="update" to modify an existing database; value="create-drop" means the same as "create" but also drops tables when Hibernate closes; value="validate" makes no changes to the database -->
                  <property name="hibernate.hbm2ddl.auto" value="update"/>
                  <property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy"/>
                  <property name="hibernate.connection.charSet" value="UTF-8"/>
                  <!-- Uncomment the following two properties for JBoss only -->
                  <!-- property name="hibernate.validator.apply_to_ddl" value="false" /-->
                  <!-- property name="hibernate.validator.autoregister_listeners" value="false" /-->
                  </properties>
      </persistence-unit>
      

      為第二個數(shù)據(jù)庫復(fù)制持久化單元代碼,定義了唯一的id。重要的是:添加。持久化單元處理的每個實體都必須包含在內(nèi)。

      修改后的ApplicationContext.xml文件

      <bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource1">
            <property name="driverClassName" value="${database.driverClassName}"/>
            <property name="url" value="${database.url1}"/>
            <property name="username" value="${database.username1}"/>
            <property name="password" value="${database.password1}"/>
            <property name="validationQuery" value="SELECT 1 FROM DUAL"/>
            <property name="testOnBorrow" value="true"/>
      </bean>
      <bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory1">
            <property name="dataSource" ref="dataSource1"/>
            <property name="persistenceUnitName" value="persistenceUnit1"/>
      </bean>
      <tx:annotation-driven mode="aspectj" transaction-manager="transactionManager1" />
      <bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager1">
            <property name="entityManagerFactory" ref="entityManagerFactory1" />
      </bean>
      <bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource2">
            <property name="driverClassName" value="${database.driverClassName}"/>
            <property name="url" value="${database.url2}"/>
            <property name="username" value="${database.username2}"/>
            <property name="password" value="${database.password2}"/>
            <property name="validationQuery" value="SELECT 1 FROM DUAL"/>
            <property name="testOnBorrow" value="true"/>
      </bean>
      <bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager2">
            <property name="entityManagerFactory" ref="entityManagerFactory2"/>
      </bean>
      <tx:annotation-driven mode="aspectj" transaction-manager="transactionManager2" />
      <bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory2">
            <property name="dataSource" ref="dataSource2"/>
            <property name="persistenceUnitName" value="persistenceUnit2"/>
      </bean>
      

      其他文件的處理過程類似。添加屬性到entityManagerFactory beans中。

      修改后的Web.xml文件

      <filter>
            <filter-name>Spring OpenEntityManagerInViewFilter1</filter-name>
            <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
            <init-param>
                  <param-name>entityManagerFactoryBeanName</param-name>
                  <param-value>entityManagerFactory1</param-value>
            </init-param>
      </filter>
      <filter>
            <filter-name>Spring OpenEntityManagerInViewFilter2</filter-name>
            <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
            <init-param>
                  <param-name>entityManagerFactoryBeanName</param-name>
                  <param-value>entityManagerFactory2</param-value>
            </init-param>
      </filter>
      

      就是這樣!應(yīng)用可以部署和測試了。

      總結(jié)

      已經(jīng)演示了如何安裝Spring web應(yīng)用的上下文,使得應(yīng)用可以訪問第二個數(shù)據(jù)庫,尤其對Spring Roo開發(fā)人員有用。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多