最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot之集成mybatis-plus、druid整合多數(shù)據(jù)源實(shí)踐

 更新時(shí)間:2026年06月04日 09:11:21   作者:我叫晨曦啊  
本篇文章詳細(xì)介紹了如何在SpringBoot 2.3.12.RELEASE項(xiàng)目中配置MySQL 8.0數(shù)據(jù)庫(kù),包括pom文件依賴引入、application.yml配置、實(shí)體類與mapper層的創(chuàng)建及測(cè)試類的編寫,助力開發(fā)者高效構(gòu)建數(shù)據(jù)庫(kù)連接
  • spring boot 版本:2.3.12.RELEASE
  • MySQL 版本:8.0

數(shù)據(jù)表準(zhǔn)備

-- 數(shù)據(jù)庫(kù) test1
CREATE TABLE `t_product` (
  `id` int NOT NULL AUTO_INCREMENT,
  `produce_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
  `produce_price` int DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
-- 數(shù)據(jù)庫(kù) test2
CREATE TABLE `student` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

引入pom文件依賴

<!--spring-boot-starter-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
<!--spring-boot-starter-web-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--spring-boot-starter-test-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
<!-- lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.26</version>
</dependency>
<!--Mybatis-Plus 注意版本-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>
<!--dynamic-datasource-spring-boot-starter-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
    <version>3.5.2</version>
</dependency>
<!--druid-spring-boot-starter-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.16</version>
</dependency>
<!-- mysql-connector-j -->
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <version>8.0.33</version>
</dependency>

application.yml配置文件

spring:
  autoconfigure:
    exclude:  com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
  datasource:
    dynamic:
      primary: master
      datasource:
        master:
          type: com.alibaba.druid.pool.DruidDataSource
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://1.1.1.1:3306/test1?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=false
          username: root
          password: 123456
        slave:
          type: com.alibaba.druid.pool.DruidDataSource
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://2.2.2.2:3306/test2?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=false
          username: root
          password: 654321
    druid:
      # 如果initialSize數(shù)量較多時(shí),打開會(huì)加快應(yīng)用啟動(dòng)時(shí)間
      async-init: true
      # 連接池初始化時(shí)創(chuàng)建的連接數(shù)
      initial-size: 5
      # 連接池中最大連接數(shù)
      max-active: 50
      # 連接池中最小空閑連接數(shù)
      min-idle: 5
      # 連接池中最大空閑連接數(shù)
      max-idle: 20
      # 配置獲取連接等待超時(shí)的時(shí)間 毫秒
      max-wait: 6000
      # 配置間隔多久才進(jìn)行一次檢測(cè),檢測(cè)需要關(guān)閉的空閑連接,單位是毫秒
      time-between-eviction-runs-millis: 60000
      # 增強(qiáng)timeBetweenEvictionRunsMillis的周期性連接檢查,minIdle內(nèi)的空閑連接,每次檢查強(qiáng)制驗(yàn)證連接有效性
      keep-alive: true
      # 配置一個(gè)連接在池中最小生存的時(shí)間,單位是毫秒
      min-evictable-idle-time-millis: 300000
      max-evictable-idle-time-millis: 172800000
      # 用于檢測(cè)連接是否有效的SQL語句
      validation-query: select 1
      validation-query-timeout: 1
      # 是否開啟空閑連接的檢測(cè)
      test-while-idle: true
      # 是否開啟連接的檢測(cè)功能,在獲取連接時(shí)檢測(cè)連接是否有效
      test-on-borrow: false
      # 是否開啟連接的檢測(cè)功能,在歸還連接時(shí)檢測(cè)連接是否有效
      test-on-return: false
      # 是否緩存preparedStatement,也就是PSCache。PSCache對(duì)支持游標(biāo)的數(shù)據(jù)庫(kù)性能提升巨大,比如說oracle。在mysql下建議關(guān)閉。
      pool-prepared-statements: false
      filter:
        stat:
          enabled: true
          db-type: mysql
          log-slow-sql: true
          slow-sql-millis: 3000
          connection-stack-trace-enable: true
        wall:
          enabled: true
          db-type: mysql
          config:
            insert-allow: true
            delete-allow: false
            update-allow: true
            drop-table-allow: false
      stat-view-servlet:
        # http://localhost:8989/mp/druid/index.html
        # 啟用StatViewServlet
        enabled: true
        # 訪問內(nèi)置監(jiān)控頁(yè)面的路徑,內(nèi)置監(jiān)控頁(yè)面的首頁(yè)是/druid/index.html
        url-pattern: /druid/*
        # 不允許清空統(tǒng)計(jì)數(shù)據(jù),重新計(jì)算
        reset-enable: false
        # 配置監(jiān)控頁(yè)面訪問密碼
        login-username: root
        login-password: 123456
        # 允許訪問的地址,如果allow沒有配置或者為空,則允許所有訪問
        allow: 127.0.0.1
        # 拒絕訪問的地址,deny優(yōu)先于allow,如果在deny列表中,就算在allow列表中,也會(huì)被拒絕
mybatis-plus:
  # 實(shí)體類Mapper.xml文件所在包
  mapper-locations: classpath:mapper/*Mapper.xml
  # 指定 MyBatis 別名包掃描路徑,用于給包中的類注冊(cè)別名。注冊(cè)后,在 Mapper 對(duì)應(yīng)的 XML 文件中可以直接使用類名,無需使用全限定類名。
  type-aliases-package: com.sun.pojo
  configuration:
    # 開啟駝峰映射,A_COLUMN > aColumn
    map-underscore-to-camel-case: true
    # 是否允許單條sql 返回多個(gè)數(shù)據(jù)集
    multiple-result-sets-enabled: true
    # mybatis-plus的日志輸出到控制臺(tái)
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

新建實(shí)體類

@Data
@TableName("t_product")
public class Product {

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @TableField("produce_name")
    private String produceName;

    @TableField("produce_price")
    private String producePrice;

}
@Data
@TableName("student")
public class Student {

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @TableField("remark")
    private String remark;
}

新建mapper

mapper層類上使用@DS()注解區(qū)分使用的數(shù)據(jù)源

@DS("master")
@Mapper
public interface ProductMapper extends BaseMapper<Product> {
}
@DS("slave")
@Mapper
public interface StudentMapper extends BaseMapper<Student> {
}

新建測(cè)試類

@SpringBootTest
@RunWith(SpringRunner.class)
public class DataTest {

    @Autowired
    private StudentMapper studentMapper;

    @Autowired
    private ProductMapper productMapper;

    @Test
    public void dataTest() {
        LambdaQueryWrapper<Student> studentWrapper = new LambdaQueryWrapper<>();
        List<Student> studentList = studentMapper.selectList(studentWrapper);
        studentList.forEach(System.out::println);

        LambdaQueryWrapper<Product> productWrapper = new LambdaQueryWrapper<>();
        List<Product> productList = productMapper.selectList(productWrapper);
        productList.forEach(System.out::println);
    }
    
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mybatis批量添加,批量更新之前如何判斷是否已經(jīng)存在

    mybatis批量添加,批量更新之前如何判斷是否已經(jīng)存在

    這篇文章主要介紹了mybatis批量添加,批量更新之前如何判斷是否已經(jīng)存在,具有很好的參考價(jià)值,希望對(duì)的有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 談?wù)剬?duì)Java多態(tài)性的一點(diǎn)理解

    談?wù)剬?duì)Java多態(tài)性的一點(diǎn)理解

    多態(tài)就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發(fā)出的方法調(diào)用在編程時(shí)并不確定,而是在程序運(yùn)行期間才確定,即一個(gè)引用變量倒底會(huì)指向哪個(gè)類的實(shí)例對(duì)象,該引用變量發(fā)出的方法調(diào)用到底是哪個(gè)類中實(shí)現(xiàn)的方法,必須在由程序運(yùn)行期間才能決定
    2017-08-08
  • Spring Boot中使用jdbctemplate 操作MYSQL數(shù)據(jù)庫(kù)實(shí)例

    Spring Boot中使用jdbctemplate 操作MYSQL數(shù)據(jù)庫(kù)實(shí)例

    本篇文章主要介紹了Spring Boot中使用jdbctemplate 操作MYSQL數(shù)據(jù)庫(kù)實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-04-04
  • SpringMVC數(shù)據(jù)響應(yīng)詳細(xì)介紹

    SpringMVC數(shù)據(jù)響應(yīng)詳細(xì)介紹

    Spring MVC 是 Spring 提供的一個(gè)基于 MVC 設(shè)計(jì)模式的輕量級(jí) Web 開發(fā)框架,本質(zhì)上相當(dāng)于 Servlet,Spring MVC 角色劃分清晰,分工明細(xì),本章來講解SpringMVC數(shù)據(jù)響應(yīng)
    2023-02-02
  • Spring依賴注入與自動(dòng)裝配原理解析

    Spring依賴注入與自動(dòng)裝配原理解析

    本文講解Spring依賴注入核心知識(shí):闡釋 Bean、IoC 等概念,介紹三種注入方式(推薦構(gòu)造器注入),解析 @Autowired 自動(dòng)裝配原理、注解差異及循環(huán)依賴等問題的解決辦法,感興趣的朋友跟隨小編一起看看吧
    2026-02-02
  • Java利用MultipartFile實(shí)現(xiàn)上傳多份文件的代碼

    Java利用MultipartFile實(shí)現(xiàn)上傳多份文件的代碼

    這篇文章主要介紹了Java利用MultipartFile實(shí)現(xiàn)上傳多份文件的代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • springmvc利用jquery.form插件異步上傳文件示例

    springmvc利用jquery.form插件異步上傳文件示例

    本篇文章主要介紹了springmvc利用jquery.form插件異步上傳文件示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • java實(shí)現(xiàn)分頁(yè)顯示效果

    java實(shí)現(xiàn)分頁(yè)顯示效果

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)頁(yè)顯示效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Java線程的全方位詳解

    Java線程的全方位詳解

    Java 給多線程編程提供了內(nèi)置的支持。 一條線程指的是進(jìn)程中一個(gè)單一順序的控制流,一個(gè)進(jìn)程中可以并發(fā)多個(gè)線程,每條線程并行執(zhí)行不同的任務(wù),多線程是多任務(wù)的一種特別的形式,但多線程使用了更小的資源開銷
    2021-10-10
  • Java Scoket實(shí)現(xiàn)雙向通信代碼詳解

    Java Scoket實(shí)現(xiàn)雙向通信代碼詳解

    這篇文章主要介紹了Java Scoket實(shí)現(xiàn)雙向通信代碼詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評(píng)論

奈曼旗| 衡水市| 兴安盟| 广宁县| 九龙县| 曲周县| 昌宁县| 精河县| 建德市| 上林县| 尼勒克县| 郁南县| 上思县| 秦安县| 喀喇沁旗| 诏安县| 安阳市| 郧西县| 温州市| 丰台区| 策勒县| 乌鲁木齐县| 拉萨市| 南雄市| 奉化市| 米脂县| 洪雅县| 宜兴市| 宽城| 杂多县| 巴塘县| 常州市| 雅江县| 右玉县| 泾源县| 邹城市| 新乐市| 新昌县| 民丰县| 东丽区| 泰兴市|