Spring+Jpa多数据源配置

persistence.xml

先配一个data1

<persistence-unit name="data1" transaction-type="RESOURCE_LOCAL">

    <provider>org.hibernate.ejb.HibernatePersistence</provider>

    <properties>

         <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>

         <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/data1?useUnicode=yes&amp;characterEncoding=UTF-8"/>

         <property name="hibernate.connection.username" value="root"/>

         <property name="hibernate.connection.password" value="123123"/>

     

         <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>

         <property name="hibernate.show_sql" value="false"/>

         <property name="hibernate.format_sql" value="false"/>

         <property name="hibernate.hbm2ddl.auto" value="update"/>

         <property name="hibernate.id.new_generator_mappings" value="true"/>

    </properties>

 

 

</persistence-unit>

再配另一个data2

<persistence-unit name="data2" transaction-type="RESOURCE_LOCAL">

    <provider>org.hibernate.ejb.HibernatePersistence</provider>

    <properties>

        <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>

        <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/data2?useUnicode=yes&amp;characterEncoding=UTF-8"/>

        <property name="hibernate.connection.username" value="root"/>

        <property name="hibernate.connection.password" value="123123"/>

 

        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>

        <property name="hibernate.show_sql" value="false"/>

        <property name="hibernate.format_sql" value="false"/>

        <property name="hibernate.hbm2ddl.auto" value="update"/>

        <property name="hibernate.id.new_generator_mappings" value="true"/>

    </properties>

</persistence-unit>

spring_biz.xml配置

<bean id="entityManagerFactory1" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">

    <property name="persistenceUnitName" value="data1" />

</bean>

 

<bean id="entityManagerFactory2" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">

    <property name="persistenceUnitName" value="data2" />

</bean>

  <!-- 事务管理 -->

<bean id="transactionManager1" class="org.springframework.orm.jpa.JpaTransactionManager">

    <property name="entityManagerFactory" ref="entityManagerFactory1"/>

</bean>

<bean id="transactionManager2" class="org.springframework.orm.jpa.JpaTransactionManager">

   <property name="entityManagerFactory"  ref="entityManagerFactory2" />

</bean>

 

 

<!-- 将事务管理加到标有 @Transactional 的类或者方法上 -->

<tx:annotation-driven transaction-manager="transactionManager1"/>

<tx:annotation-driven transaction-manager="transactionManager2"/>

  

测试

package com.ysotek.peihu.module.order.dao;

 

import org.junit.Test;

 

import javax.persistence.EntityManagerFactory;

import javax.persistence.Persistence;

 

/**

 * Created by wei on 2017/2/24 15:09.

 */

public class DBTest {

/** Dao层使用的时候加上unitName**/

// @PersistenceContext(unitName = "entityManager1")

// private EntityManager entityManager1;

//

// @PersistenceContext(unitName = "entityManager2")

// private EntityManager entityManager2;

/**----------------------------**/

 

   @Test

   public void test() {

      EntityManagerFactory data1 = Persistence.createEntityManagerFactory("data1 );

      EntityManagerFactory data2 = Persistence.createEntityManagerFactory("data2 ");

      System.out.println("数据源1:" + data1);

      System.out.println("数据源2:" + data2);

   }

}

转载于:https://my.oschina.net/u/1411360/blog/1359353

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值