国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Quartz---Springboot項目整合Quartz---實現(xiàn)內(nèi)存、數(shù)據(jù)庫持久化

這篇具有很好參考價值的文章主要介紹了Quartz---Springboot項目整合Quartz---實現(xiàn)內(nèi)存、數(shù)據(jù)庫持久化。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.SpringBoot整合Quartz使用內(nèi)存持久化

1.1.什么是內(nèi)存持久化

Quartz的內(nèi)存持久化是指Quartz框架在默認情況下將任務(wù)調(diào)度的運行信息保存在內(nèi)存中。這種方式的優(yōu)點是可以提供最佳的性能,因為內(nèi)存中數(shù)據(jù)訪問最快。然而,內(nèi)存持久化的缺點是缺乏數(shù)據(jù)的持久性。當(dāng)程序停止或系統(tǒng)崩潰時,所有運行的信息都會丟失。

1.2.步驟如下
1.2.1. 添加依賴


首先,在pom.xml文件中添加Quartz的依賴項。


<dependency>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-quartz</artifactId>  
</dependency>


?

1.2.2. 創(chuàng)建Job類


實現(xiàn)org.quartz.Job接口或org.quartz.StatefulJob接口,并覆蓋execute方法。


import org.quartz.Job;  
import org.quartz.JobExecutionContext;  
import org.quartz.JobExecutionException;  
  
public class MyJob implements Job {  
    @Override  
    public void execute(JobExecutionContext context) throws JobExecutionException {  
        // 執(zhí)行作業(yè)邏輯  
    }  
}
1.2.3. 創(chuàng)建JobDetail和Trigger


使用JobBuilder和TriggerBuilder來創(chuàng)建JobDetail和Trigger實例,并通過調(diào)度器將它們關(guān)聯(lián)起來。


import org.quartz.*;  
import org.springframework.context.annotation.Bean;  
import org.springframework.context.annotation.Configuration;  
  
@Configuration  
public class QuartzConfig {  
    //創(chuàng)建JobDetailr實例
    @Bean  
    public JobDetail myJobDetail() {  
        return JobBuilder.newJob(MyJob.class)  
                .withIdentity("myJob", "group1")  
                .storeDurably()  
                .build();  
    }  
    //創(chuàng)建調(diào)度器和Trigge并管理jobDetail
    @Bean  
    public Trigger myTrigger() {  
        SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule()  
                .withIntervalInSeconds(5)  //每5秒執(zhí)行一次任務(wù)
                .repeatForever();  
  
        return TriggerBuilder.newTrigger()  
                .forJob(myJobDetail())  
                .withIdentity("myTrigger", "group1")  
                .withSchedule(scheduleBuilder)  
                .build();  
    }  
}
1.2.4. 啟動應(yīng)用


運行你的Spring Boot應(yīng)用,Quartz將會根據(jù)配置自動啟動,并按照你定義的Trigger來觸發(fā)并執(zhí)行作業(yè)。

1.2.實例

定時執(zhí)行任務(wù),查找數(shù)據(jù)庫中預(yù)約時間過期的數(shù)據(jù)并將車位狀態(tài)實時更新。

1.2.1數(shù)據(jù)庫數(shù)據(jù)說明

預(yù)約記錄表單

Quartz---Springboot項目整合Quartz---實現(xiàn)內(nèi)存、數(shù)據(jù)庫持久化,spring boot,java,后端,Quartz

車位表單中的id作為預(yù)約表單的外鍵

Quartz---Springboot項目整合Quartz---實現(xiàn)內(nèi)存、數(shù)據(jù)庫持久化,spring boot,java,后端,Quartz

1.2.2.關(guān)鍵代碼

對job類進行修改

package com.duhong.quartz;

import com.duhong.entity.OrderParking;
import com.duhong.service.OrderService;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.batch.BatchProperties;
import org.springframework.boot.autoconfigure.quartz.QuartzDataSource;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;
import java.util.List;
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
public class UpdateJob implements Job {
    @Autowired
    OrderService orderService;

    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
         //查詢所有預(yù)約記錄
        List<OrderParking> orderParkings = orderService.selectRecord();
        for (OrderParking orderParking : orderParkings) {
            System.out.println("作業(yè)執(zhí)行");
            System.out.println("到期時間"+orderParking.getDeadtime());
            System.out.println("當(dāng)前時間"+LocalDateTime.now());
            //未到預(yù)約時間
            if(orderParking.getDeadtime().isBefore( LocalDateTime.now())){
                //更新車位狀態(tài)
                orderService.updateInitStatus(orderParking.getId());
                System.out.println("更新成功");
            }else{
                System.out.println("未到預(yù)約時間");
            }
        }
    }
}
1.2.3.執(zhí)行結(jié)果

Quartz---Springboot項目整合Quartz---實現(xiàn)內(nèi)存、數(shù)據(jù)庫持久化,spring boot,java,后端,Quartz

Quartz---Springboot項目整合Quartz---實現(xiàn)內(nèi)存、數(shù)據(jù)庫持久化,spring boot,java,后端,Quartz

2.SpringBoot整合Quartz使用mysql持久化

2.1.為啥要使用數(shù)據(jù)庫持久化

Quartz 是一個開源的任務(wù)調(diào)度框架,用于在 Java 應(yīng)用中執(zhí)行定時任務(wù)。Quartz 本身不直接提供任務(wù)持久化的功能,但它支持將任務(wù)、觸發(fā)器和其他相關(guān)信息存儲到數(shù)據(jù)庫中,以便在應(yīng)用程序重啟或服務(wù)器崩潰后恢復(fù)。

選擇 MySQL 作為 Quartz 的持久化存儲有以下幾個原因:

  1. 通用性和普及性:MySQL 是一個廣泛使用的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有很高的通用性和普及性。很多開發(fā)者和團隊都熟悉 MySQL,因此選擇 MySQL 作為 Quartz 的持久化存儲可以簡化開發(fā)和維護過程。
  2. 穩(wěn)定性和可靠性:MySQL 是一個成熟、穩(wěn)定且經(jīng)過廣泛驗證的數(shù)據(jù)庫系統(tǒng)。它提供了良好的數(shù)據(jù)完整性和可靠性保證,可以確保 Quartz 任務(wù)調(diào)度的準確性和一致性。
  3. 性能優(yōu)化:MySQL 在處理大量數(shù)據(jù)和復(fù)雜查詢方面表現(xiàn)出色。通過合理的索引和查詢優(yōu)化,可以確保 Quartz 在持久化任務(wù)時具有良好的性能表現(xiàn)。
  4. 社區(qū)支持和資源:由于 MySQL 的廣泛使用和開源性質(zhì),它擁有龐大的用戶社區(qū)和豐富的資源。這意味著在遇到問題時,可以更容易地找到解決方案或獲得幫助。
  5. 擴展性和靈活性:MySQL 支持多種存儲引擎和配置選項,可以根據(jù)實際需求進行靈活的配置和擴展。這使得它成為一個適合各種規(guī)模應(yīng)用程序的持久化存儲選擇。

2.2.持久化步驟

基于對quartz使用內(nèi)存持久化,我們只需添加數(shù)據(jù)庫表及修改properities文件即可

2.2.1.添加數(shù)據(jù)庫表
create table if not exists parking_place
(
   id int auto_increment
      primary key,
   location varchar(255) null,
   status int default 0 null,
   price double null,
   type varchar(255) null
);

create table if not exists qrtz_calendars
(
   SCHED_NAME varchar(120) not null,
   CALENDAR_NAME varchar(190) not null,
   CALENDAR blob not null,
   primary key (SCHED_NAME, CALENDAR_NAME)
);

create table if not exists qrtz_fired_triggers
(
   SCHED_NAME varchar(120) not null,
   ENTRY_ID varchar(95) not null,
   TRIGGER_NAME varchar(190) not null,
   TRIGGER_GROUP varchar(190) not null,
   INSTANCE_NAME varchar(190) not null,
   FIRED_TIME bigint(13) not null,
   SCHED_TIME bigint(13) not null,
   PRIORITY int not null,
   STATE varchar(16) not null,
   JOB_NAME varchar(190) null,
   JOB_GROUP varchar(190) null,
   IS_NONCONCURRENT varchar(1) null,
   REQUESTS_RECOVERY varchar(1) null,
   primary key (SCHED_NAME, ENTRY_ID)
);

create index IDX_QRTZ_FT_INST_JOB_REQ_RCVRY
   on qrtz_fired_triggers (SCHED_NAME, INSTANCE_NAME, REQUESTS_RECOVERY);

create index IDX_QRTZ_FT_JG
   on qrtz_fired_triggers (SCHED_NAME, JOB_GROUP);

create index IDX_QRTZ_FT_J_G
   on qrtz_fired_triggers (SCHED_NAME, JOB_NAME, JOB_GROUP);

create index IDX_QRTZ_FT_TG
   on qrtz_fired_triggers (SCHED_NAME, TRIGGER_GROUP);

create index IDX_QRTZ_FT_TRIG_INST_NAME
   on qrtz_fired_triggers (SCHED_NAME, INSTANCE_NAME);

create index IDX_QRTZ_FT_T_G
   on qrtz_fired_triggers (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP);

create table if not exists qrtz_job_details
(
   SCHED_NAME varchar(120) not null,
   JOB_NAME varchar(190) not null,
   JOB_GROUP varchar(190) not null,
   DESCRIPTION varchar(250) null,
   JOB_CLASS_NAME varchar(250) not null,
   IS_DURABLE varchar(1) not null,
   IS_NONCONCURRENT varchar(1) not null,
   IS_UPDATE_DATA varchar(1) not null,
   REQUESTS_RECOVERY varchar(1) not null,
   JOB_DATA blob null,
   primary key (SCHED_NAME, JOB_NAME, JOB_GROUP)
);

create index IDX_QRTZ_J_GRP
   on qrtz_job_details (SCHED_NAME, JOB_GROUP);

create index IDX_QRTZ_J_REQ_RECOVERY
   on qrtz_job_details (SCHED_NAME, REQUESTS_RECOVERY);

create table if not exists qrtz_locks
(
   SCHED_NAME varchar(120) not null,
   LOCK_NAME varchar(40) not null,
   primary key (SCHED_NAME, LOCK_NAME)
);

create table if not exists qrtz_paused_trigger_grps
(
   SCHED_NAME varchar(120) not null,
   TRIGGER_GROUP varchar(190) not null,
   primary key (SCHED_NAME, TRIGGER_GROUP)
);

create table if not exists qrtz_scheduler_state
(
   SCHED_NAME varchar(120) not null,
   INSTANCE_NAME varchar(190) not null,
   LAST_CHECKIN_TIME bigint(13) not null,
   CHECKIN_INTERVAL bigint(13) not null,
   primary key (SCHED_NAME, INSTANCE_NAME)
);

create table if not exists qrtz_triggers
(
   SCHED_NAME varchar(120) not null,
   TRIGGER_NAME varchar(190) not null,
   TRIGGER_GROUP varchar(190) not null,
   JOB_NAME varchar(190) not null,
   JOB_GROUP varchar(190) not null,
   DESCRIPTION varchar(250) null,
   NEXT_FIRE_TIME bigint(13) null,
   PREV_FIRE_TIME bigint(13) null,
   PRIORITY int null,
   TRIGGER_STATE varchar(16) not null,
   TRIGGER_TYPE varchar(8) not null,
   START_TIME bigint(13) not null,
   END_TIME bigint(13) null,
   CALENDAR_NAME varchar(190) null,
   MISFIRE_INSTR smallint(2) null,
   JOB_DATA blob null,
   primary key (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP),
   constraint qrtz_triggers_ibfk_1
      foreign key (SCHED_NAME, JOB_NAME, JOB_GROUP) references qrtz_job_details (SCHED_NAME, JOB_NAME, JOB_GROUP)
);

create table if not exists qrtz_blob_triggers
(
   SCHED_NAME varchar(120) not null,
   TRIGGER_NAME varchar(190) not null,
   TRIGGER_GROUP varchar(190) not null,
   BLOB_DATA blob null,
   primary key (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP),
   constraint qrtz_blob_triggers_ibfk_1
      foreign key (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) references qrtz_triggers (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP)
);

create index SCHED_NAME
   on qrtz_blob_triggers (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP);

create table if not exists qrtz_cron_triggers
(
   SCHED_NAME varchar(120) not null,
   TRIGGER_NAME varchar(190) not null,
   TRIGGER_GROUP varchar(190) not null,
   CRON_EXPRESSION varchar(120) not null,
   TIME_ZONE_ID varchar(80) null,
   primary key (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP),
   constraint qrtz_cron_triggers_ibfk_1
      foreign key (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) references qrtz_triggers (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP)
);

create table if not exists qrtz_simple_triggers
(
   SCHED_NAME varchar(120) not null,
   TRIGGER_NAME varchar(190) not null,
   TRIGGER_GROUP varchar(190) not null,
   REPEAT_COUNT bigint(7) not null,
   REPEAT_INTERVAL bigint(12) not null,
   TIMES_TRIGGERED bigint(10) not null,
   primary key (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP),
   constraint qrtz_simple_triggers_ibfk_1
      foreign key (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) references qrtz_triggers (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP)
);

create table if not exists qrtz_simprop_triggers
(
   SCHED_NAME varchar(120) not null,
   TRIGGER_NAME varchar(190) not null,
   TRIGGER_GROUP varchar(190) not null,
   STR_PROP_1 varchar(512) null,
   STR_PROP_2 varchar(512) null,
   STR_PROP_3 varchar(512) null,
   INT_PROP_1 int null,
   INT_PROP_2 int null,
   LONG_PROP_1 bigint null,
   LONG_PROP_2 bigint null,
   DEC_PROP_1 decimal(13,4) null,
   DEC_PROP_2 decimal(13,4) null,
   BOOL_PROP_1 varchar(1) null,
   BOOL_PROP_2 varchar(1) null,
   primary key (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP),
   constraint qrtz_simprop_triggers_ibfk_1
      foreign key (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) references qrtz_triggers (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP)
);

create index IDX_QRTZ_T_C
   on qrtz_triggers (SCHED_NAME, CALENDAR_NAME);

create index IDX_QRTZ_T_G
   on qrtz_triggers (SCHED_NAME, TRIGGER_GROUP);

create index IDX_QRTZ_T_J
   on qrtz_triggers (SCHED_NAME, JOB_NAME, JOB_GROUP);

create index IDX_QRTZ_T_JG
   on qrtz_triggers (SCHED_NAME, JOB_GROUP);

create index IDX_QRTZ_T_NEXT_FIRE_TIME
   on qrtz_triggers (SCHED_NAME, NEXT_FIRE_TIME);

create index IDX_QRTZ_T_NFT_MISFIRE
   on qrtz_triggers (SCHED_NAME, MISFIRE_INSTR, NEXT_FIRE_TIME);

create index IDX_QRTZ_T_NFT_ST
   on qrtz_triggers (SCHED_NAME, TRIGGER_STATE, NEXT_FIRE_TIME);

create index IDX_QRTZ_T_NFT_ST_MISFIRE
   on qrtz_triggers (SCHED_NAME, MISFIRE_INSTR, NEXT_FIRE_TIME, TRIGGER_STATE);

create index IDX_QRTZ_T_NFT_ST_MISFIRE_GRP
   on qrtz_triggers (SCHED_NAME, MISFIRE_INSTR, NEXT_FIRE_TIME, TRIGGER_GROUP, TRIGGER_STATE);

create index IDX_QRTZ_T_N_G_STATE
   on qrtz_triggers (SCHED_NAME, TRIGGER_GROUP, TRIGGER_STATE);

create index IDX_QRTZ_T_N_STATE
   on qrtz_triggers (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, TRIGGER_STATE);

create index IDX_QRTZ_T_STATE
   on qrtz_triggers (SCHED_NAME, TRIGGER_STATE);
2.2.2.持久化配置
quartz:
  # 將任務(wù)等保存化到數(shù)據(jù)庫
  job-store-type: jdbc
  # 程序結(jié)束時會等待quartz相關(guān)的內(nèi)容結(jié)束
  wait-for-jobs-to-complete-on-shutdown: true
  overwrite-existing-jobs: true
  properties:
    org:
      quartz:
        scheduler:
          # scheduler的實例名
          instanceName: scheduler
          #auto:自動生成唯一值
          instanceId: AUTO
        # 持久化相關(guān)
        jobStore:
          # 升級 springboot 版本,注釋 class 屬性
          # class: org.quartz.impl.jdbcjobstore.JobStoreTX
          # 數(shù)據(jù)庫類型
          driverDelegateClass: org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
          # 表示數(shù)據(jù)庫表名前綴
          tablePrefix: QRTZ_
          useProperties: false
        # 線程池相關(guān)
        threadPool:
          class: org.quartz.simpl.SimpleThreadPool
          # 線程數(shù)
          threadCount: 10
          # 線程優(yōu)先級
          threadPriority: 5
          threadsInheritContextClassLoaderOfInitializingThread: true
2.2.3.重啟實例,持久化成功

Quartz---Springboot項目整合Quartz---實現(xiàn)內(nèi)存、數(shù)據(jù)庫持久化,spring boot,java,后端,Quartz文章來源地址http://www.zghlxwxcb.cn/news/detail-831972.html

到了這里,關(guān)于Quartz---Springboot項目整合Quartz---實現(xiàn)內(nèi)存、數(shù)據(jù)庫持久化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • springboot+redis+mysql+quartz-通過Java操作jedis使用pipeline獲取緩存數(shù)據(jù)定時更新數(shù)據(jù)庫

    springboot+redis+mysql+quartz-通過Java操作jedis使用pipeline獲取緩存數(shù)據(jù)定時更新數(shù)據(jù)庫

    代碼講解:6-點贊功能-定時持久化到數(shù)據(jù)庫-pipeline+lua-優(yōu)化pipeline_嗶哩嗶哩_bilibili https://www.bilibili.com/video/BV1yP411C7dr 代碼: blogLike_schedule/like06 · xin麒/XinQiUtilsOrDemo - 碼云 - 開源中國 (gitee.com) https://gitee.com/flowers-bloom-is-the-sea/XinQiUtilsOrDemo/tree/master/blogLike_schedule/like06 數(shù)據(jù)庫表的

    2024年02月16日
    瀏覽(28)
  • Springboot 整合Quartz

    關(guān)于定時任務(wù),相關(guān)的技術(shù)文檔,技術(shù)點也是非常的多,比如:ScheduledExecutorService,基于注解的@Scheduled,還有更多基礎(chǔ)的實現(xiàn),針對于單體服務(wù)這些都是可以正常使用的,配置簡單,操作便捷,但是針對大型項目在分布式的大環(huán)境下,這些定時技術(shù)是不支持分布式的,會導(dǎo)致

    2024年02月09日
    瀏覽(20)
  • springboot+redis+mysql+quartz-通過Java操作redis的KEYS*命令獲取緩存數(shù)據(jù)定時更新數(shù)據(jù)庫

    代碼講解: 3-點贊功能-定時持久化到數(shù)據(jù)庫(pipeline+lua)-完善過程2_嗶哩嗶哩_bilibili https://www.bilibili.com/video/BV1w14y1o7BV 本文章代碼: blogLike_schedule/like03 · xin麒/XinQiUtilsOrDemo - 碼云 - 開源中國 (gitee.com) https://gitee.com/flowers-bloom-is-the-sea/XinQiUtilsOrDemo/tree/master/blogLike_schedule/like03 數(shù)據(jù)

    2024年02月15日
    瀏覽(31)
  • springboot+redis+mysql+quartz-通過Java操作jedis定時使用lua腳本獲取緩存數(shù)據(jù)并更新數(shù)據(jù)庫

    springboot+redis+mysql+quartz-通過Java操作jedis定時使用lua腳本獲取緩存數(shù)據(jù)并更新數(shù)據(jù)庫 代碼講解:7.1點贊功能-定時持久化到數(shù)據(jù)庫-Java整合lua_嗶哩嗶哩_bilibili https://www.bilibili.com/video/BV1ZX4y1H7JT/ 代碼: blogLike_schedule/like07 · xin麒/XinQiUtilsOrDemo - 碼云 - 開源中國 (gitee.com) https://gitee

    2024年02月13日
    瀏覽(17)
  • SpringBoot整合定時任務(wù)技術(shù)Quartz

    SpringBoot整合定時任務(wù)技術(shù)Quartz

    個人簡介:Java領(lǐng)域新星創(chuàng)作者;阿里云技術(shù)博主、星級博主、專家博主;正在Java學(xué)習(xí)的路上摸爬滾打,記錄學(xué)習(xí)的過程~ 個人主頁:.29.的博客 學(xué)習(xí)社區(qū):進去逛一逛~ # 一、SpringBoot整合定時任務(wù)技術(shù)Quartz ??Quartz應(yīng)用場景 Spring Boot整合Quartz的定時任務(wù)技術(shù)可以應(yīng)用于許多不同

    2024年02月09日
    瀏覽(34)
  • 【微服務(wù)】springboot整合quartz使用詳解

    目錄 一、前言 二、quartz介紹 2.1 quartz概述 2.2 quartz優(yōu)缺點 2.3 quartz核

    2024年02月05日
    瀏覽(17)
  • 若依學(xué)習(xí)——定時任務(wù)代碼邏輯 詳細梳理(springboot整合Quartz)

    若依學(xué)習(xí)——定時任務(wù)代碼邏輯 詳細梳理(springboot整合Quartz)

    關(guān)于若依定時任務(wù)的使用可以去看視頻默認定時任務(wù)的使用 關(guān)于springboot整合quartz的整合參考 (150條消息) 定時任務(wù)框架Quartz-(一)Quartz入門與Demo搭建_quarzt_是Guava不是瓜娃的博客-CSDN博客 (150條消息) SpringBoot整合Quartz_springboot quartz_桐花思雨的博客-CSDN博客 簡單來說,啟動一個定任

    2024年02月04日
    瀏覽(31)
  • SpringBoot整合H2數(shù)據(jù)庫

    SpringBoot整合H2數(shù)據(jù)庫

    H2官網(wǎng):http://www.h2database.com/ H2是一個Java語言編寫的嵌入式數(shù)據(jù)庫,它不受平臺的限制,同時H2提供了一個十分方便的web控制臺,用于操作和管理數(shù)據(jù)庫內(nèi)容。H2還提供兼容模式,可以兼容一些主流的數(shù)據(jù)庫,也可以為緩存數(shù)據(jù)庫使用,它具有比較完備的數(shù)據(jù)庫特性,如支cli

    2024年02月16日
    瀏覽(24)
  • SpringBoot整合達夢數(shù)據(jù)庫

    SpringBoot整合達夢數(shù)據(jù)庫

    近期接到了一個需要國產(chǎn)化的項目,用到了達夢數(shù)據(jù)庫,沒想到一開始配置就出現(xiàn)了問題,下面把配置給大家粘貼出來,大家少踩點坑。 一、先下載達夢數(shù)據(jù)庫 這是達夢數(shù)據(jù)庫下載鏈接,達夢數(shù)據(jù)庫沒有免費的,個人好像是一年的試用期,具體不太清楚還沒開始好好研究。

    2024年02月03日
    瀏覽(26)
  • Springboot整合Durid-數(shù)據(jù)庫連接池

    一、Springboot使用Durid快速開始 1、 添加依賴 2、添加配置項 (1) durid連接池配置

    2024年02月11日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包