jpa+spring配置多数据源

采用jpa+spring技术配置多数据源

persistence.xml配置多数据源

  
    
<? xml version = " 1.0 " ?>
< persistence xmlns = " http://java.sun.com/xml/ns/persistence "
xmlns:xsi
= " http://www.w3.org/2001/XMLSchema-instance "
xsi:schemaLocation
= " http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd "
version
= " 1.0 " >
<!-- 配置mysql数据源 -->
< persistence - unit name = " mysql " transaction - type = " RESOURCE_LOCAL " >
< provider > org.hibernate.ejb.HibernatePersistence </ provider >
< properties >
< property name = " hibernate.dialect " value = " org.hibernate.dialect.MySQL5Dialect " />
< property name = " hibernate.connection.driver_class " value = " org.gjt.mm.mysql.Driver " />
< property name = " hibernate.connection.username " value = " root " />
< property name = " hibernate.connection.password " value = " mysql " />
< property name = " hibernate.connection.url " value = " jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8 " />
< property name = " hibernate.hbm2ddl.auto " value = " update " />
</ properties >
</ persistence - unit >
<!-- 配置oracle数据源 -->
< persistence - unit name = " oracle " transaction - type = " RESOURCE_LOCAL " >
< provider > org.hibernate.ejb.HibernatePersistence </ provider >
< properties >
< property name = " hibernate.dialect " value = " org.hibernate.dialect.Oracle10gDialect " />
< property name = " hibernate.connection.driver_class " value = " oracle.jdbc.driver.OracleDriver " />
< property name = " hibernate.connection.username " value = " test " />
< property name = " hibernate.connection.password " value = " test " />
< property name = " hibernate.connection.url " value = " jdbc:oracle:thin:@localhost:1521:orcl " />
< property name = " hibernate.hbm2ddl.auto " value = " update " />
</ properties >
</ persistence - unit >
</ persistence >

beans.xml

  
    
<? xml version = " 1.0 " encoding = " UTF-8 " ?>
< beans xmlns = " http://www.springframework.org/schema/beans "
xmlns:xsi
= " http://www.w3.org/2001/XMLSchema-instance "
xmlns:aop
= " http://www.springframework.org/schema/aop "
xmlns:context
= " http://www.springframework.org/schema/context "
xmlns:tx
= " http://www.springframework.org/schema/tx "
xsi:schemaLocation
= " http://www.springframework.org/schema/beans
http: // www.springframework.org/schema/beans/spring-beans-2.5.xsd
http: // www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http: // www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http: // www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd ">

< bean id = " entityManagerFactory " class = " org.springframework.orm.jpa.LocalEntityManagerFactoryBean " >
< property name = " persistenceUnitName " value = " mysql " />
</ bean >
< bean id = " entityManagerFactory2 " class = " org.springframework.orm.jpa.LocalEntityManagerFactoryBean " >
< property name = " persistenceUnitName " value = " oracle " />
</ bean >

< bean id = " txManager " class = " org.springframework.orm.jpa.JpaTransactionManager " >
< property name = " entityManagerFactory " ref = " entityManagerFactory " />
</ bean >

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

PersonServiceTest测试类

  
    
package junit.test;

import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.PersistenceContext;

import org.junit.Test;
/**
* 测试多数据源配置是否成功
*
*
@author jiqinlin
*
*/
public class PersonServiceTest {
// @PersistenceContext(unitName="mysql")
// private EntityManager mysqlEm;
// @PersistenceContext(unitName="oracle")
// private EntityManager oracleEm;

@Test
public void test() {
EntityManagerFactory mysql
= Persistence.createEntityManagerFactory( " mysql " );
EntityManagerFactory oracle
= Persistence.createEntityManagerFactory( " oracle " );
System.out.println(mysql
+ " : " + oracle);

}
}

运行时如果能打印出factory对象,表示多数据源配置成功,如下所示

jpa+spring配置多数据源

你可能感兴趣的:(spring配置)