Rumah >Java >javaTutorial >Cara menggunakan mybatis-plus untuk mengkonfigurasi berbilang sumber data dalam springboot
1. Buat projek springboot kosong
2 Konfigurasikan fail konfigurasi pom.xml, hanya ubah suai kandungan dalam dependensi, yang boleh diganti terus
<dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter</artifactid> </dependency> <dependency> <groupid>org.apache.httpcomponents</groupid> <artifactid>httpclient</artifactid> </dependency> <dependency> <groupid>cn.hutool</groupid> <artifactid>hutool-all</artifactid> <version>5.2.0</version> </dependency> <dependency> <groupid>com.alibaba</groupid> <artifactid>fastjson</artifactid> <version>1.2.9</version> </dependency> <dependency> <groupid>org.projectlombok</groupid> <artifactid>lombok</artifactid> <optional>true</optional> </dependency> <!-- mybatis-plus --> <dependency> <groupid>com.baomidou</groupid> <artifactid>mybatis-plus-boot-starter</artifactid> <version>3.4.1</version> </dependency> <!-- 多数据源配置 --> <dependency> <groupid>com.baomidou</groupid> <artifactid>dynamic-datasource-spring-boot-starter</artifactid> <version>3.2.0</version> </dependency> <!-- mysql --> <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <scope>runtime</scope> </dependency></dependencies>
3 sumber
spring: datasource:dynamic: primary: master #指定默认数据库,下面可以配置多个数据库,不仅仅是两个,master就是其中一个数据库的名字,名字对应就可以,自己随便取 datasource:master: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://数据库1ip地址:数据库1端口/数据库1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true username: 数据库1用户 password: 数据库1密码slave: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://数据库2ip地址:数据库2端口/数据库2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true username: 数据库2用户 password: 数据库2密码
4 Buat
entiti, pemeta, perkhidmatan, impl baharu yang sepadan
Jika anda perlu menghubungi sumber pangkalan data yang tidak digunakan, anda hanya perlu menggunakan anotasi @DS("nama pangkalan data" dalam impl ) boleh menjadi
5. Tulis pemasa untuk memanggil pertanyaan data, atau anda boleh memanggil pertanyaan data dalam kaedah pertanyaan adalah sama
package com.xyz.dsjy.task;import com.xyz.dsjy.entity.Enterprise;import com.xyz.dsjy.entity.FjflCredit;import com.xyz.dsjy.service.EnterpriseService;import com.xyz.dsjy.service.FjflCreditService;import lombok.AllArgsConstructor;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annotation.EnableScheduling;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;import java.time.LocalDateTime;@AllArgsConstructor@Component@Configuration //1.主要用于标记配置类,兼备Component的效果。@EnableScheduling // 2.开启定时任务public class MultithreadScheduleTask {public final FjflCreditService fjflCrediService; public final EnterpriseService enterpriseService; @Scheduled(fixedRate=5000)private void configureTasks() { FjflCredit fs = fjflCrediService.getById(1); System.out.println(fs); System.err.println("执行静态定时任务时间: " + LocalDateTime.now()); }@Scheduled(fixedRate=6000)private void configureTasks2() { Enterprise et = enterpriseService.getById(80); System.out.println(et); System.err.println("执行静态定时任务时间2222: " + LocalDateTime.now()); } }
6 .Ubah suai kelas permulaan @MapperScan("com.xyz.dsjy.mapper") Tambah imbasan pemeta
package com.xyz.dsjy;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@MapperScan("com.xyz.dsjy.mapper") //添加启动扫mapper包下的mapper类public class DsjyApplication {public static void main(String[] args) { SpringApplication.run(DsjyApplication.class, args); } }
7 memerlukan
Pit ditemui:
Pit 1:
Penerangan:
Gagal mengkonfigurasi Sumber Data: 'url atribut ' tidak ditentukan dan tiada sumber data terbenam boleh dikonfigurasikan.
Sebab: Gagal menentukan kelas pemacu yang sesuai
Oleh kerana pom.xml memperkenalkan druid dan dinamik, dan kami menggunakan dinamik, kami hanya perlu memadam pengenalan druid.
Pit 2:
2021-04-08 15:52:53.242 INFO 20108 --- [ utama] com.zaxxer.hikari.HikariDataSource : master - Starting...
2021-04 -08 15:52:54.125 INFO 20108 --- [ utama] com.zaxxer.hikari.HikariDataSource : master - Mula selesai.
2021-04-08 15:52:54.126 INFO 20108 --- [ utama] com .zaxxer.hikari.HikariDataSource : hamba - Bermula...
2021-04-08 15:52:54.942 INFO 20108 --- [ utama] com.zaxxer.hikari.HikariDataSource : hamba - Mula selesai.
08-04-2021 15:52:54.942 INFO 20108 --- [ utama] c.b.d.d.DynamicRoutingDataSource : dynamic-datasource - muatkan sumber data bernama [hamba] kejayaan
2021-04-08 15:94: INFO 42-52: INFO - [ utama] c.b.d.d.DynamicRoutingDataSource : dynamic-datasource - muatkan sumber data bernama [master] success
2021-04-08 15:52:54.943 INFO 20108 --- [ main] c.b.d.d.DynaourSourceDataloaded initial ] datasource,primary
.....
2021-04-08 15:52:54.989 INFO 20108 --- [ main] com.zaxxer.hikari.HikariDataSource : slave - Shutdown dimulakan.. .
2021-04-08 15:52:54.996 INFO 20108 --- [ utama] com.zaxxer.hikari.HikariDataSource : hamba - Penutupan selesai.
2021-04-08 15:516: INFO 54.9098 --- [ utama] com.zaxxer.hikari.HikariDataSource : master - Shutdown dimulakan...
2021-04-08 15:52:55.164 INFO 20108 --- [ main] com.zaxxer .HikariDataSource : induk - Penutupan selesai.
2021-04-08 15:52:55.165 INFO 20108 --- [ utama] c.b.d.d.DynamicRoutingDataSource : dynamic-datasource semua kejayaan tertutup, bye
boleh dilihat bermula Semasa proses , berbilang sumber pangkalan data yang kami konfigurasikan Mula selesai Kemudian kami menghadapi pengecualian dan ditutup semula.
Ini disebabkan oleh pengenalan beberapa pakej balang Mybatis Periksa sama ada fail bom.xml memperkenalkan dua kebergantungan mybatis dan mybatis-plus.
Atas ialah kandungan terperinci Cara menggunakan mybatis-plus untuk mengkonfigurasi berbilang sumber data dalam springboot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!