Rumah  >  Artikel  >  Java  >  Cara menggunakan mybatis-plus untuk mengkonfigurasi berbilang sumber data dalam springboot

Cara menggunakan mybatis-plus untuk mengkonfigurasi berbilang sumber data dalam springboot

王林
王林ke hadapan
2023-05-14 12:19:131408semak imbas

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

Cara menggunakan mybatis-plus untuk mengkonfigurasi berbilang sumber data dalam springboot

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

Cara menggunakan mybatis-plus untuk mengkonfigurasi berbilang sumber data dalam springboot

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam