https://baomidou.com/
Mybatis-Plus介紹
為簡(jiǎn)化開(kāi)發(fā)而生
MyBatis-Plus(opens new window)(簡(jiǎn)稱(chēng) MP)是一個(gè) MyBatis (opens new window) 的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開(kāi)發(fā)、提高效率而生。
特性
- 無(wú)侵入:只做增強(qiáng)不做改變,引入它不會(huì)對(duì)現(xiàn)有工程產(chǎn)生影響,如絲般順滑
- 損耗小:?jiǎn)?dòng)即會(huì)自動(dòng)注入基本 CURD,性能基本無(wú)損耗,直接面向?qū)ο蟛僮?/li>
- 強(qiáng)大的 CRUD 操作:內(nèi)置通用 Mapper、通用 Service,僅僅通過(guò)少量配置即可實(shí)現(xiàn)單表大部分 CRUD 操作,更有強(qiáng)大的條件構(gòu)造器,滿(mǎn)足各類(lèi)使用需求
- 支持 Lambda 形式調(diào)用:通過(guò) Lambda 表達(dá)式,方便的編寫(xiě)各類(lèi)查詢(xún)條件,無(wú)需再擔(dān)心字段寫(xiě)錯(cuò)
- 支持主鍵自動(dòng)生成:支持多達(dá) 4 種主鍵策略(內(nèi)含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解決主鍵問(wèn)題
- 支持 ActiveRecord 模式:支持 ActiveRecord 形式調(diào)用,實(shí)體類(lèi)只需繼承 Model 類(lèi)即可進(jìn)行強(qiáng)大的 CRUD 操作
- 支持自定義全局通用操作:支持全局通用方法注入( Write once, use anywhere )
- 內(nèi)置代碼生成器:采用代碼或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 層代碼,支持模板引擎,更有超多自定義配置等您來(lái)使用
- 內(nèi)置分頁(yè)插件:基于 MyBatis 物理分頁(yè),開(kāi)發(fā)者無(wú)需關(guān)心具體操作,配置好插件之后,寫(xiě)分頁(yè)等同于普通 List 查詢(xún)
- 分頁(yè)插件支持多種數(shù)據(jù)庫(kù):支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多種數(shù)據(jù)庫(kù)
- 內(nèi)置性能分析插件:可輸出 SQL 語(yǔ)句以及其執(zhí)行時(shí)間,建議開(kāi)發(fā)測(cè)試時(shí)啟用該功能,能快速揪出慢查詢(xún)
- 內(nèi)置全局?jǐn)r截插件:提供全表 delete 、 update 操作智能分析阻斷,也可自定義攔截規(guī)則,預(yù)防誤操作
手搭手入門(mén)Mybatis-Plus配置多數(shù)據(jù)源
添加依賴(lài)
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.0</version>
</dependency>
配置模板
spring:
? datasource:
??? dynamic:
????? primary: master #設(shè)置默認(rèn)的數(shù)據(jù)源或者數(shù)據(jù)源組,默認(rèn)值即為master
????? strict: false #嚴(yán)格匹配數(shù)據(jù)源,默認(rèn)false. true未匹配到指定數(shù)據(jù)源時(shí)拋異常,false使用默認(rèn)數(shù)據(jù)源
????? datasource:
??????? master:
????????? url: jdbc:mysql://xx.xx.xx.xx:3306/dynamic
????????? username: root
????????? password: 123456
????????? driver-class-name: com.mysql.jdbc.Driver # 3.2.0開(kāi)始支持SPI可省略此配置
??????? slave_1:
????????? url: jdbc:mysql://xx.xx.xx.xx:3307/dynamic
????????? username: root
????????? password: 123456
????????? driver-class-name: com.mysql.jdbc.Driver
??????? slave_2:
????????? url: ENC(xxxxx) # 內(nèi)置加密,使用請(qǐng)查看詳細(xì)文檔
????????? username: ENC(xxxxx)
????????? password: ENC(xxxxx)
????????? driver-class-name: com.mysql.jdbc.Driver
??????? #......省略
??????? #以上會(huì)配置一個(gè)默認(rèn)庫(kù)master,一個(gè)組slave下有兩個(gè)子庫(kù)slave_1,slave_2
案例
???????????????????
spring:
datasource:
dynamic:
primary: sys #設(shè)置默認(rèn)的數(shù)據(jù)源或者數(shù)據(jù)源組,默認(rèn)值即為master
strict: false #嚴(yán)格匹配數(shù)據(jù)源,默認(rèn)false. true未匹配到指定數(shù)據(jù)源時(shí)拋異常,false使用默認(rèn)數(shù)據(jù)源
datasource:
sys:
username: root
password: pwd
url: jdbc:mysql://192.168.3.1:3306/sys?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8
driver-class-name: com.mysql.jdbc.Driver
wms:
url: jdbc:mysql://192.168.3.2:3306/Wms?useUnicode=true&characterEncoding=UTF-8
username: root
password: pwd
driver-class-name: com.mysql.jdbc.Driver
impl實(shí)現(xiàn)類(lèi)指定數(shù)據(jù)源
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-733125.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-733125.html
@Test
void multipleDataSources(){
List<User> users =userService.list();
List<TOutboundlog> tOutBoundLogs = tOutboundlogService.list();
System.out.println(users);
System.out.println(tOutBoundLogs);
}
到了這里,關(guān)于手搭手入門(mén)Mybatis-Plus配置多數(shù)據(jù)源的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!