zoukankan      html  css  js  c++  java
  • spring 4 + jpa(hibernate 3/4) + spring mvc 多数据源配置(二)+Druid连接池

    接上一个博文(http://www.loveweir.com/html/18.html),没有数据库连接池,纯粹用jpa的官方链接。

    所以这次要加上连接池本文用Druid连接池来实现多数据源的配置。

    persistence.xml 这个文件可以省略了,全部配置在applicationContext.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:jpa="http://www.springframework.org/schema/data/jpa"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:util="http://www.springframework.org/schema/util"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd
            http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.2.xsd">
        
        <context:annotation-config/>
        <context:component-scan base-package="com.tw"/>
        
        <!-- mysql数据源配置 -->
        <bean id="mysqlDataSource" class="com.alibaba.druid.pool.DruidDataSource"
            init-method="init" destroy-method="close">
            <!-- 驱动名称 -->
            <property name="DriverClassName" value="com.mysql.jdbc.Driver" />
            <!-- JDBC连接串 -->
            <property name="url"
                value="jdbc:mysql://192.168.132.1:3306/twq?useUnicode=true&amp;characterEncoding=UTF-8" />
            <!-- 数据库用户名称 -->
            <property name="username" value="ws" />
            <!-- 数据库密码 -->
            <property name="password" value="unionmanws" />
            <!-- 连接池最大使用连接数量 -->
            <property name="maxActive" value="20" />
            <!-- 初始化大小 -->
            <property name="initialSize" value="5" />
            <!-- 获取连接最大等待时间 -->
            <property name="maxWait" value="60000" />
            <!-- 连接池最小空闲 -->
            <property name="minIdle" value="2" />
            <!-- 逐出连接的检测时间间隔 -->
            <property name="timeBetweenEvictionRunsMillis" value="3000" />
            <!-- 最小逐出时间 -->
            <property name="minEvictableIdleTimeMillis" value="300000" />
            <!-- 测试有效用的SQL Query -->
            <property name="validationQuery" value="SELECT 'x'" />
            <!-- 连接空闲时测试是否有效 -->
            <property name="testWhileIdle" value="true" />
            <!-- 获取连接时测试是否有效 -->
            <property name="testOnBorrow" value="false" />
            <!-- 归还连接时是否测试有效 -->
            <property name="testOnReturn" value="false" />
        </bean>
        
          <!-- 整合mysqljpa -->
          <bean id="mysqlEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
              <property name="dataSource" ref="mysqlDataSource"></property>
              <property name="packagesToScan" value="com.tw.entity.sys"></property>
              <property name="persistenceUnitName" value="mysqldb"></property>
              <property name="jpaVendorAdapter">
                  <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                      <property name="showSql" value="true"></property>
                  </bean>
              </property>
              <property name="jpaProperties">
                <props>
                    <!--设置外连接抓取树的最大深度 -->
                    <prop key="hibernate.max_fetch_depth">3</prop>
                    <prop key="hibernate.jdbc.fetch_size">18</prop>
                    <prop key="hibernate.jdbc.batch_size">10</prop>
                    <!-- 自动建表类型 validate|create|create-drop|update -->
                    <!-- <prop key="hibernate.hbm2ddl.auto">validate</prop> -->
                    <!-- 是否显示SQL -->
                    <prop key="hibernate.show_sql">false</prop>
                    <!-- 显示SQL是否格式化 -->
                    <prop key="hibernate.format_sql">false</prop>
                    <!-- 关闭二级缓存 -->
                    <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>
                    <!-- 关闭实体字段映射校验 -->
                    <prop key="javax.persistence.validation.mode">none</prop>
                </props>
            </property>
          </bean>
          <bean id="mysqltransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
            <property name="entityManagerFactory" ref="mysqlEntityManagerFactory" />
            <qualifier value="mysqlEM"/>
          </bean>
        <tx:annotation-driven transaction-manager="mysqltransactionManager" proxy-target-class="false"/>    
          
          
          <!-- sqlserver数据源配置 -->
        <bean id="sqlserverDataSource" class="com.alibaba.druid.pool.DruidDataSource"
            init-method="init" destroy-method="close">
            <!-- 驱动名称 -->
            <property name="DriverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
            <!-- JDBC连接串 -->
            <property name="url"
                value="jdbc:sqlserver://192.168.130.10:1433;DatabaseName=unionman" />
            <!-- 数据库用户名称 -->
            <property name="username" value="sa" />
            <!-- 数据库密码 -->
            <property name="password" value="123abc" />
            <!-- 连接池最大使用连接数量 -->
            <property name="maxActive" value="20" />
            <!-- 初始化大小 -->
            <property name="initialSize" value="5" />
            <!-- 获取连接最大等待时间 -->
            <property name="maxWait" value="60000" />
            <!-- 连接池最小空闲 -->
            <property name="minIdle" value="2" />
            <!-- 逐出连接的检测时间间隔 -->
            <property name="timeBetweenEvictionRunsMillis" value="3000" />
            <!-- 最小逐出时间 -->
            <property name="minEvictableIdleTimeMillis" value="300000" />
            <!-- 测试有效用的SQL Query -->
            <property name="validationQuery" value="SELECT 'x'" />
            <!-- 连接空闲时测试是否有效 -->
            <property name="testWhileIdle" value="true" />
            <!-- 获取连接时测试是否有效 -->
            <property name="testOnBorrow" value="false" />
            <!-- 归还连接时是否测试有效 -->
            <property name="testOnReturn" value="false" />
        </bean>
          
          <!-- 整合sqlserverjpa -->
          <bean id="sqlserverEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
              <property name="dataSource" ref="sqlserverDataSource"></property>
              <property name="packagesToScan" value="com.tw.entity.plan"></property>
              <property name="persistenceUnitName" value="sqlserverdb"></property>
              <property name="jpaVendorAdapter">
                  <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                      <property name="showSql" value="true"></property>
                  </bean>
              </property>
              <property name="jpaProperties">
                <props>
                    <!--设置外连接抓取树的最大深度 -->
                    <prop key="hibernate.max_fetch_depth">3</prop>
                    <prop key="hibernate.jdbc.fetch_size">18</prop>
                    <prop key="hibernate.jdbc.batch_size">10</prop>
                    <!-- 自动建表类型 validate|create|create-drop|update -->
                    <!-- <prop key="hibernate.hbm2ddl.auto">validate</prop> -->
                    <!-- 是否显示SQL -->
                    <prop key="hibernate.show_sql">false</prop>
                    <!-- 显示SQL是否格式化 -->
                    <prop key="hibernate.format_sql">false</prop>
                    <!-- 关闭二级缓存 -->
                    <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>
                    <!-- 关闭实体字段映射校验 -->
                    <prop key="javax.persistence.validation.mode">none</prop>
                </props>
            </property>
          </bean>
          <bean id="sqlservertransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
            <property name="entityManagerFactory" ref="sqlserverEntityManagerFactory" />
            <qualifier value="sqlserverEM"/>
          </bean>
        <tx:annotation-driven transaction-manager="sqlservertransactionManager" proxy-target-class="false"/>    
    
    </beans>

    其他不需要变动,这样就ok。

  • 相关阅读:
    【转】win8.1下安装ubuntu
    Codeforces 1025G Company Acquisitions (概率期望)
    Codeforces 997D Cycles in Product (点分治、DP计数)
    Codeforces 997E Good Subsegments (线段树)
    Codeforces 1188E Problem from Red Panda (计数)
    Codeforces 1284E New Year and Castle Building (计算几何)
    Codeforces 1322D Reality Show (DP)
    AtCoder AGC043C Giant Graph (图论、SG函数、FWT)
    Codeforces 1305F Kuroni and the Punishment (随机化)
    AtCoder AGC022E Median Replace (字符串、自动机、贪心、计数)
  • 原文地址:https://www.cnblogs.com/weir2011/p/4210223.html
Copyright © 2011-2022 走看看