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

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

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

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

-- 數(shù)據(jù)庫 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ù)庫 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ù)量較多時,打開會加快應(yīng)用啟動時間
      async-init: true
      # 連接池初始化時創(chuàng)建的連接數(shù)
      initial-size: 5
      # 連接池中最大連接數(shù)
      max-active: 50
      # 連接池中最小空閑連接數(shù)
      min-idle: 5
      # 連接池中最大空閑連接數(shù)
      max-idle: 20
      # 配置獲取連接等待超時的時間 毫秒
      max-wait: 6000
      # 配置間隔多久才進行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒
      time-between-eviction-runs-millis: 60000
      # 增強timeBetweenEvictionRunsMillis的周期性連接檢查,minIdle內(nèi)的空閑連接,每次檢查強制驗證連接有效性
      keep-alive: true
      # 配置一個連接在池中最小生存的時間,單位是毫秒
      min-evictable-idle-time-millis: 300000
      max-evictable-idle-time-millis: 172800000
      # 用于檢測連接是否有效的SQL語句
      validation-query: select 1
      validation-query-timeout: 1
      # 是否開啟空閑連接的檢測
      test-while-idle: true
      # 是否開啟連接的檢測功能,在獲取連接時檢測連接是否有效
      test-on-borrow: false
      # 是否開啟連接的檢測功能,在歸還連接時檢測連接是否有效
      test-on-return: false
      # 是否緩存preparedStatement,也就是PSCache。PSCache對支持游標(biāo)的數(shù)據(jù)庫性能提升巨大,比如說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)控頁面的路徑,內(nèi)置監(jiān)控頁面的首頁是/druid/index.html
        url-pattern: /druid/*
        # 不允許清空統(tǒng)計數(shù)據(jù),重新計算
        reset-enable: false
        # 配置監(jiān)控頁面訪問密碼
        login-username: root
        login-password: 123456
        # 允許訪問的地址,如果allow沒有配置或者為空,則允許所有訪問
        allow: 127.0.0.1
        # 拒絕訪問的地址,deny優(yōu)先于allow,如果在deny列表中,就算在allow列表中,也會被拒絕
mybatis-plus:
  # 實體類Mapper.xml文件所在包
  mapper-locations: classpath:mapper/*Mapper.xml
  # 指定 MyBatis 別名包掃描路徑,用于給包中的類注冊別名。注冊后,在 Mapper 對應(yīng)的 XML 文件中可以直接使用類名,無需使用全限定類名。
  type-aliases-package: com.sun.pojo
  configuration:
    # 開啟駝峰映射,A_COLUMN > aColumn
    map-underscore-to-camel-case: true
    # 是否允許單條sql 返回多個數(shù)據(jù)集
    multiple-result-sets-enabled: true
    # mybatis-plus的日志輸出到控制臺
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

新建實體類

@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> {
}

新建測試類

@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é)

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

相關(guān)文章

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

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

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

    談?wù)剬ava多態(tài)性的一點理解

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

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

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

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

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

    Spring依賴注入與自動裝配原理解析

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

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

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

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

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

    java實現(xiàn)分頁顯示效果

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

    Java線程的全方位詳解

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

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

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

最新評論

金寨县| 特克斯县| 炎陵县| 长宁县| 泰兴市| 镇平县| 德江县| 寿宁县| 勃利县| 巴马| 柯坪县| 中超| 若尔盖县| 赤水市| 元氏县| 延津县| 灌南县| 南开区| 红安县| 昌吉市| 赞皇县| 泰宁县| 信宜市| 修武县| 探索| 东乡县| 南郑县| 鄂尔多斯市| 灵川县| 济源市| 金秀| 西城区| 苍山县| 靖西县| 海门市| 涟水县| 阜宁县| 鱼台县| 绥德县| 呈贡县| 秦安县|