采用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&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对象,表示多数据源配置成功,如下所示
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/16110.html