zoukankan      html  css  js  c++  java
  • 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对象,表示多数据源配置成功,如下所示

  • 相关阅读:
    mysql索引
    springboot mybatis 后台框架平台 shiro 权限 集成代码生成器
    java 企业网站源码模版 有前后台 springmvc SSM 生成静态化
    java springMVC SSM 操作日志 4级别联动 文件管理 头像编辑 shiro redis
    activiti工作流的web流程设计器整合视频教程 SSM和独立部署
    .Net Core中的ObjectPool
    文件操作、流相关类梳理
    .Net Core中的配置文件源码解析
    .Net Core中依赖注入服务使用总结
    消息中间件RabbitMQ(一)
  • 原文地址:https://www.cnblogs.com/linjiqin/p/1952904.html
Copyright © 2011-2022 走看看