Spring Mybatis 實現動態選擇資料來源

2021-09-11 01:55:34 字數 1112 閱讀 2554

有時候我們想要實現動態選擇資料來源的功能,即在進行資料庫操作時選擇對具體的某個資料來源進行操作。這個功能我們利用spring+mybatis 即可實現。

1.datasourceswitcher

spring 提供了乙個 abstractroutingdatasource 抽象類來幫助我們實現動態資料來源功能,我們可以自定義乙個類 datasourceswitcher 並繼承 abstractroutingdatasource ,在 datasourceswitcher 類中實現三個方法 cleardatasource、determinecurrentlookupkey 和 setdatasourcekey 就行。

public class datasourceswitcher extends abstractroutingdatasource 

/*** 決定使用哪個資料庫

* @return

*/@override

protected object determinecurrentlookupkey()

/*** 設定資料來源

* @param datasource

*/public static void setdatasourcekey(string datasource)

}

2.配置 spring-mybatis.xml

配置多個庫:

配置資料來源選擇器,在 targetdatasources 中配置將要使用的資料庫,key值用來選擇對應的資料庫

3.在呼叫方法時傳入想要使用的資料庫 key 值,即 targetdatasources 中配置的資料庫對應的 key 值來選擇資料庫。

總結:使用spring+mybatis 來實現動態選擇資料來源就完成了!我們與常規的spring+mybatis 不同的只是增加了乙個datasourceswitcher 類,並在 spring-mybatis.xml 中宣告 datasourceswitcher 和使用到的多個 datasource,並在 sqlsessionfactory 和 datasourcetransactionmanager 的 datasource 引用宣告的 datasourceswitcher

Spring mybatis 結合實現登入

首先準備資料庫 建立專案 copy jar包 本例使用的是springioc和mybatis相結合,主要練習兩個框架相結合的搭建,未使用註解等方式 springioc相關jar mybatis相關jar spring連線資料庫的相關jar 因為jdbc的相關jar包用到了aop和aspects,這裡...

spring mybatis讀寫分離

一 配置定義資料庫連線屬性 二 定義bean 三 事務定義 四 配置外掛程式 五 編寫動態資料來源類 public class dynamicdatasource extends abstractroutingdatasource setdefaulttargetdatasource writeda...

spring mybatis連線access資料庫

1.所需jar包 spring mybatis common dhcp 版本1.4以上,1.4以下無法支援connectionproperties屬性 注意事項 連線access資料庫前請關閉log4j,log4j的控制台sql日誌輸出會導致 not data sqlexception 2.pom....