seam 中配置多数据源 操作不同数据库

已项目 intelligence 为例;

1. intelligence-dev-ds.xml  定义两个数据库连接 分别连接不同的数据库

 <local-tx-datasource>
      <jndi-name>intelligenceDatasource</jndi-name>
      <use-java-context>false</use-java-context>
      <connection-url>jdbc:oracle:thin:@192.168.1.xx:1521:orcl</connection-url>
      <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
      <user-name>GB_xx</user-name>
      <password>xxx</password>
   </local-tx-datasource>
  
   <local-tx-datasource>
      <jndi-name>gisDatasource</jndi-name>
      <use-java-context>false</use-java-context>
      <connection-url>jdbc:oracle:thin:@192.168.1.xx:1521:xe</connection-url>
      <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
      <user-name>gis_xx</user-name>
      <password>xx</password>
   </local-tx-datasource>

2.persistence-dev.xml

 

 <persistence-unit name="intelligence" transaction-type="JTA">
      <provider>org.hibernate.ejb.HibernatePersistence</provider>
      <jta-data-source>intelligenceDatasource</jta-data-source>
      <properties>
         <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
         <property name="hibernate.hbm2ddl.auto" value="none"/>
         <property name="hibernate.show_sql" value="true"/>
         <property name="hibernate.format_sql" value="true"/>
         <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
         <property name="hibernate.default_schema" value="GB_xx"/>
         <property name="jboss.entity.manager.factory.jndi.name" value="java:/intelligenceEntityManagerFactory"/>
         <property name="hibernate.search.default.directory_provider" value="org.hibernate.search.store.FSDirectoryProvider" />
         <property name="hibernate.search.default.indexBase" value="D:/JavaWork" /> 
         <property name="hibernate.ejb.event.post-insert" value="org.hibernate.search.event.FullTextIndexEventListener" />
         <property name="hibernate.ejb.event.post-update" value="org.hibernate.search.event.FullTextIndexEventListener" />
        <property name="hibernate.ejb.event.post-delete" value="org.hibernate.search.event.FullTextIndexEventListener" />
    </properties>


   </persistence-unit>
   <persistence-unit name="gis" transaction-type="JTA">
     <provider>org.hibernate.ejb.HibernatePersistence</provider>
       <jta-data-source>gisDatasource</jta-data-source>
       <properties>
         <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
         <property name="hibernate.hbm2ddl.auto" value="none"/>
         <property name="hibernate.show_sql" value="true"/>
         <property name="hibernate.format_sql" value="true"/>
         <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
         <property name="jboss.entity.manager.factory.jndi.name" value="java:/gisEntityManagerFactory"/>
         <property name="hibernate.search.default.directory_provider" value="org.hibernate.search.store.FSDirectoryProvider" />
         <property name="hibernate.search.default.indexBase" value="D:/JavaWork" />
         <property name="hibernate.ejb.event.post-insert" value="org.hibernate.search.event.FullTextIndexEventListener" />
         <property name="hibernate.ejb.event.post-update" value="org.hibernate.search.event.FullTextIndexEventListener" />
         <property name="hibernate.ejb.event.post-delete" value="org.hibernate.search.event.FullTextIndexEventListener" />
      </properties>
    </persistence-unit>

3.components.xml

 

 

<persistence:entity-manager-factory name="intelligenceEntityManagerFactory"   persistence-unit-name="intelligence"/> 
<persistence:entity-manager-factory name="gisEntityManagerFactory" persistence-unit-name="gis"/> 
   
<persistence:managed-persistence-context name="entityManager" auto-create="true"
                      persistence-unit-jndi-name="java:/intelligenceEntityManagerFactory"/> 

<persistence:managed-persistence-context name="gisEntityManager" auto-create="true"
                      persistence-unit-jndi-name="java:/gisEntityManagerFactory"/>

4.使用

 EntityManager em =  (EntityManager) Component.getInstance("gisEntityManager");

或者:

@In
 EntityManager gisEntityManager;

5.实体类需要增加@Table(name = "test",schema=“数据库名”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值