1. 程式人生 > >Spring+MyBatis多資料來源配置實現

Spring+MyBatis多資料來源配置實現

最近用到了MyBatis配置多資料來源,原以為簡單配置下就行了,實際操作後發現還是要費些事的,這裡記錄下,以作備忘

不多廢話,直接上程式碼,後面會有簡單的實現介紹

jdbc和log4j的配置

複製程式碼
#定義輸出格式
ConversionPattern=%d %-5p [%t] %c - %m%n

log4j.rootLogger=DEBUG,Console
log4j.logger.com.cnblogs.lzrabbit=DEBUG
log4j.logger.org.springframework=ERROR
log4j.logger.org.mybatis=ERROR
log4j.logger.org.apache.ibatis
=ERROR log4j.logger.org.quartz=ERROR log4j.logger.org.apache.axis2=ERROR log4j.logger.org.apache.axiom=ERROR log4j.logger.org.apache=ERROR log4j.logger.httpclient=ERROR #log4j.additivity.org.springframework=false #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.Threshold
=DEBUG log4j.appender.Console.Target=System.out log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=${ConversionPattern} #log4j.appender.Console.encoding=UTF-8 #org.apache.log4j.DailyRollingFileAppender log4j.appender.DailyFile=org.apache.log4j.DailyRollingFileAppender log4j.appender.DailyFile.DatePattern
='.'yyyy-MM-dd'.log' log4j.appender.DailyFile.File=${myApp.root}/logs/daily.log log4j.appender.DailyFile.Append=true log4j.appender.DailyFile.Threshold=DEBUG log4j.appender.DailyFile.layout=org.apache.log4j.PatternLayout log4j.appender.DailyFile.layout.ConversionPattern=${ConversionPattern} log4j.appender.DailyFile.encoding=UTF-8 # %c 輸出日誌資訊所屬的類的全名 # %d 輸出日誌時間點的日期或時間,預設格式為ISO8601,也可以在其後指定格式,比如:%d{yyy-MM-dd HH:mm:ss},輸出類似:2002-10-18- 22:10:28 # %f 輸出日誌資訊所屬的類的類名 # %l 輸出日誌事件的發生位置,即輸出日誌資訊的語句處於它所在的類的第幾行 # %m 輸出程式碼中指定的資訊,如log(message)中的message # %n 輸出一個回車換行符,Windows平臺為“rn”,Unix平臺為“n” # %p 輸出優先順序,即DEBUG,INFO,WARN,ERROR,FATAL。如果是呼叫debug()輸出的,則為DEBUG,依此類推 # %r 輸出自應用啟動到輸出該日誌資訊所耗費的毫秒數 # %t 輸出產生該日誌事件的執行緒名
複製程式碼 複製程式碼
#============================================================================
# MySQL
#============================================================================
jdbc.mysql.driver=com.mysql.jdbc.Driver
jdbc.mysql.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
jdbc.mysql.username=root
jdbc.mysql.password=root

#============================================================================
# MS SQL Server
#============================================================================
#jdbc.sqlserver.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
#jdbc.sqlserver.url=jdbc:sqlserver://127.0.0.1:1433;database=test;
#jdbc.sqlserver.username=sa
#jdbc.sqlserver.password=sa

#============================================================================
# MS SQL Server (JTDS)
#============================================================================
jdbc.sqlserver.driver=net.sourceforge.jtds.jdbc.Driver
jdbc.sqlserver.url=jdbc:jtds:sqlserver://127.0.0.1:1433/test
jdbc.sqlserver.username=sa
jdbc.sqlserver.password=sa


#============================================================================
# 通用配置
#============================================================================
jdbc.initialSize=5
jdbc.minIdle=5
jdbc.maxIdle=20
jdbc.maxActive=100
jdbc.maxWait=100000
jdbc.defaultAutoCommit=false
jdbc.removeAbandoned=true
jdbc.removeAbandonedTimeout=600
jdbc.testWhileIdle=true
jdbc.timeBetweenEvictionRunsMillis=60000
jdbc.numTestsPerEvictionRun=20
jdbc.minEvictableIdleTimeMillis=300000
複製程式碼

單資料來源時的Spring配置檔案

複製程式碼
<?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:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
      http://www.springframework.org/schema/aop
          http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:jdbc.properties"/>
    </bean>
       <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${jdbc.mysql.driver}"/>
        <property name="url" value="${jdbc.mysql.url}"/>
        <property name="username" value="${jdbc.mysql.username}"/>
        <property name="password" value="${jdbc.mysql.password}"/>
        <property name="initialSize" value="${jdbc.initialSize}"/>
        <property name="minIdle" value="${jdbc.minIdle}"/>
        <property name="maxIdle" value="${jdbc.maxIdle}"/>
        <property name="maxActive" value="${jdbc.maxActive}"/>
        <property name="maxWait" value="${jdbc.maxWait}"/>
        <property name="defaultAutoCommit" value="${jdbc.defaultAutoCommit}"/>
        <property name="removeAbandoned" value="${jdbc.removeAbandoned}"/>
        <property name="removeAbandonedTimeout" value="${jdbc.removeAbandonedTimeout}"/>
        <property name="testWhileIdle" value="${jdbc.testWhileIdle}"/>
        <property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}"/>
        <property name="numTestsPerEvictionRun" value="${jdbc.numTestsPerEvictionRun}"/>
        <property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}"/>
    </bean>
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!-- mybatis.spring自動對映 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.cnblogs.lzrabbit"
            
           

相關推薦

Spring+MyBatis資料來源配置實現

最近用到了MyBatis配置多資料來源,原以為簡單配置下就行了,實際操作後發現還是要費些事的,這裡記錄下,以作備忘 不多廢話,直接上程式碼,後面會有簡單的實現介紹 jdbc和log4j的配置 #定義輸出格式 ConversionPattern=

Spring+MyBatis資料來源配置實現(mysql和sqlserver資料庫)

最近用到了MyBatis配置多資料來源,原以為簡單配置下就行了,實際操作後發現還是要費些事的,這裡記錄下,以作備忘 不多廢話,直接上程式碼,後面會有簡單的實現介紹 jdbc和log4j的配置 #定義輸出格式 ConversionPattern=%d %-5p [%t] %c - %m%n log4j.

Spring Boot + Mybatis 資料來源配置實現讀寫分離

本文來自網易雲社群作者:王超應用場景:專案中有一些報表統計與查詢功能,對資料實時性要求不高,因此考慮對報表的統計與查詢去操作slave db,減少對master的壓力。根據網上多份資料測試發現總是使用master資料來源,無法切換到slave,經過多次除錯修改現已完美通過,現

Spring+Mybatis資料來源配置(四)——AbstractRoutingDataSource實現資料來源動態切換

有時候需要在程式中動態切換資料來源,那麼這個系列的之前的博文所闡述的方法就不再使用了,總不能通過程式更改config.properties檔案的dataSource的值,然後再重啟web伺服器以便載入applicationContext.xml檔案。這裡講訴的是如何利用Ab

springboot+mybatis資料來源配置實現

簡單實現了根據註解動態切換資料來源,支援同一個資料庫的宣告式事務,但不支援JTA事務。處理流程: 根據配置的資料來源資訊,建立動態資料來源bean 利用DataSourceAspect處理@DataSource註解,設定當前要使用的具體資料來源 pom.xm

spring mybatis 資料來源配置

1、建立好資料庫的配置檔案 mysql.url=jdbc:mysql://***/***?useUnicode=true&characterEncoding=UTF-8 mysql.username=*** mysql.password=*** mysql.driverClassName=co

spring boot druid mybatis 資料來源配置

1.application.properties spring.datasource.url = jdbc\:mysql\://192.168.1.1\:3306/business?autoRconnect\=true&useUnicode\=true&ch

Spring, MyBatis 資料來源配置和管理

原文連結:http://www.2cto.com/kf/201505/400273.html 同一個專案有時會涉及到多個數據庫,也就是多資料來源。多資料來源又可以分為兩種情況: 1)兩個或多個數據庫沒有相關性,各自獨立,其實這種可以作為兩個專案來開

wordybear之STS下spring boot、mybatis資料來源配置完全攻略及原始碼工程

// 2017.09.01 本文所依賴的開發環境早已更改為intellij idea,然而並不影響任何 本文面對初學者,在對基礎有些瞭解但又似懂非懂有些混亂的情況下(作者一般學習新技的最初狀態,此時需要冷靜)。 但是,仔細閱讀本文,將會在相同或相似的環境下實現sts下spr

spring boot druid mybatis 資料來源 配置

spring boot 在配置時做了很多簡化配置的設定,但是簡化的配置往往已犧牲一定的定製化,比如在資料來源的配置時,spring boot 只提供4種資料庫連線池的配置,其中並不支援常用的druid 閱讀spring boot DataSourceB

Spring Boot從入門到精通(五)資料來源配置實現及原始碼分析

多資料來源配置在專案軟體中是比較常見的開發需求,Spring和Spring Boot中對此都有相應的解決方案可供大家參考。在Spring Boot中,如MyBatis、JdbcTemplate以及Jpa都可以配置多資料來源。 本文在前一篇“Spring Boot從入門到精通(四)連線MySQL資料庫(附原始碼

springboot+mybatis資料來源配置,AOP註解動態切換資料來源

轉載至:https://blog.csdn.net/xiaosheng_papa/article/details/80218006 親測有效。 注:有些系統中已經配置了單資料來源,現在要轉成多資料來源,可能需要額外的配置。拿我自己當前專案來說: 專案在啟動類中配置了單資料來源:

基於SpirngBoot2.0+ 的 SpringBoot+Mybatis 資料來源配置

Github 地址:github.com/Snailclimb/…(SpringBoot和其他常用技術的整合,可能是你遇到的講解最詳細的學習案例,力爭新手也能看懂並且能夠在看完之後獨立實踐。基於最新的 SpringBoot2.0+,是你學習SpringBoot 的最佳指南。) ,歡迎各位 Star。

新手也能看懂,基於SpirngBoot2.0+ 的 SpringBoot+Mybatis 資料來源配置

Github 地址:https://github.com/Snailclimb/springboot-integration-examples(SpringBoot和其他常用技術的整合,可能是你遇到的講解最詳細的學習案例,力爭新手也能看懂並且能夠在看完之後獨立實踐。基於最新的 S

spring mvc 資料來源配置

、首先配置兩個資料庫 <bean id="dataSourceA" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="

Spring Boot資料來源配置(一)durid、mysql、jpa整合

目前在做一個統計專案。需要多資料來源整合,其中包括mysql和mongo。本節先講mysql、durid、jpa與spring-boot的整合。 引入Durid包 <dependency> <groupId>com.a

spring boot 資料來源配置

我們在開發過程中可能需要用到多個數據源,我們有一個專案(MySQL)就是和別的專案(SQL Server)混合使用了。其中SQL Server是別的公司開發的,有些基本資料需要從他們平臺進行調取,那麼在專案中就需要支援多資料來源,不然就只能獲取到自己的資料來源的資料了。當

SpringMVC JdbcTemplate 資料來源配置實現

如果有業務需求,單個工程需要連線多個數據庫,那麼就要配置多資料來源,不同資料需求請求不同資料來源,如下是雙資料來源具體實現步驟: 1. 配置檔案中配置兩個資料庫的連線資訊 jdbc.properties: db1.jdbc.driver=com.mysql.jdbc.D

springMVC+Mybatis資料來源配置

每個MapperScannerConfigurer配置新增屬性節點 <property name="sqlSessionFactory" ref="SqlSessionFactory01"></property> ,ref引入相應的會話工廠bean。 <!--01

spring+mybatis 資料來源切換失敗的可能原因。

可能因為,加了事務。 //@Transactional(readOnly = false) // 需要事務操作必須加入此註解 就因為加了事務,導致了,問題的出現。 不然setCustomerType,也沒有出現應有的結果。 害得我把spring的框架都改寫了,不過由於