xxl-job适配postgresql数据库

news2024/11/21 0:38:59

xxl-job支持了mysql数据库,其他的数据库适配得自己弄一下,下面以目前最新的2.4.1为例进行说明适配postgresql数据库的过程。

获取源代码

从github或gitee获取源代码,目前最新版本2.4.1

xxl官网:分布式任务调度平台XXL-JOB

建立数据库

源代码的doc目录下有mysql建库脚本,在mysql中利用脚本建立数据库,

利用navicat的数据传输功能,将mysql数据库导入到postgresql中,

使用 Navicat 编辑器,手动修改所有表的数字类型字段,添加默认值 0。主键不用添加默认值。例如: int4 NOT NULL 类型为默认 0。

创建 PostgreSQL 序列

CREATE SEQUENCE xxl_job_user_id_seq START 1;
CREATE SEQUENCE xxl_job_info_id_seq START 1;
CREATE SEQUENCE xxl_job_log_id_seq START 1;
CREATE SEQUENCE xxl_job_log_report_id_seq START 1;
CREATE SEQUENCE xxl_job_logglue_id_seq START 1;
CREATE SEQUENCE xxl_job_registry_id_seq START 1;
CREATE SEQUENCE xxl_job_group_id_seq START 1;

 修改 PostgreSQL 数据库表自增主键

ALTER TABLE "public"."xxl_job_user" alter column ID set default nextval('xxl_job_user_id_seq'::regclass);
ALTER TABLE "public"."xxl_job_info" alter column ID set default nextval('xxl_job_info_id_seq'::regclass);
ALTER TABLE "public"."xxl_job_log" alter column ID set default nextval('xxl_job_log_id_seq'::regclass);
ALTER TABLE "public"."xxl_job_log_report" alter column ID set default nextval('xxl_job_log_report_id_seq'::regclass);
ALTER TABLE "public"."xxl_job_logglue" alter column ID set default nextval('xxl_job_logglue_id_seq'::regclass);
ALTER TABLE "public"."xxl_job_registry" alter column ID set default nextval('xxl_job_registry_id_seq'::regclass);
ALTER TABLE "public"."xxl_job_group" alter column ID set default nextval('xxl_job_group_id_seq'::regclass);

修改源代码

修改 POM.xml 依赖,添加postgresql

<dependency>
  <groupId>org.postgresql</groupId>
  <artifactId>postgresql</artifactId>
  <version>42.3.1</version>
</dependency>

在resource下面新建两个文件夹,mysql和postgresql,将mybatis-mapper文件夹下的xml文件拷贝到这两个文件夹下:

修改配置文件,指定xml文件的路径和数据库配置,这样以后就可以兼容两种数据库,根据配置信息使用相应的数据库。

mybatis.mapper-locations=classpath:/postgresql/*Mapper.xml

### xxl-job, datasource
#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
#spring.datasource.username=root
#spring.datasource.password=123456
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/xxl_job?currentSchema=public
spring.datasource.schemaName=public
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=org.postgresql.Driver

修改postgresql目录下的 Mapper 文件 

  • 去掉所有字段名的转义符 ` ,直接用空格替换。
  • 修改 LIMIT #{offset}, #{pagesize} 为 LIMIT #{pagesize} OFFSET #{offset} 。修改LIMIT 0, #{limit}为LIMIT #{limit} OFFSET 0。修改LIMIT 0, #{clearBeforeNum}为LIMIT #{clearBeforeNum} OFFSET 0。LIMIT #{pagesize}保持不变。
  • 修改DATE_ADD(#{nowTime},INTERVAL - #{timeout} SECOND) 为 (#{nowTime}::timestamp - '${timeout} SECONDS'::interval)
  • 修改 WHERE !( 为 WHERE not ( 。

编译运行,成功

修改后的源代码及数据库建库脚本:

https://download.csdn.net/download/xuruilll/88576748

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1269274.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCvSharpSlim画中文

github地址&#xff1a;https://github.com/AvenSun/OpenCvSharpSlim Slim Build of OpenCvSharp OpenCvSharpSlim This project provides the slim build of OpenCvSharp native library . Currently therere binary packages for OpenCvSharp 2.4.10, 3.4.20 ,4.8.0 and 4…

关键词挖掘软件-免费批量挖掘关键词的工具

在当今数字化时代&#xff0c;网站的曝光和排名对于吸引流量至关重要。而在这个大数据的背后&#xff0c;SEO&#xff08;Search Engine Optimization&#xff0c;搜索引擎优化&#xff09;成为许多网站主和创作者们追逐的关键。在SEO的世界里&#xff0c;关键词的选择和优化是…

数据结构与算法之美学习笔记:28 | 堆和堆排序:为什么说堆排序没有快速排序快?

目录 前言如何理解“堆”&#xff1f;如何实现一个堆&#xff1f;1. 往堆中插入一个元素2. 删除堆顶元素 如何基于堆实现排序&#xff1f;1. 建堆2. 排序 解答开篇内容小结 前言 本节课程思维导图&#xff1a; 我们今天讲另外一种特殊的树&#xff0c;“堆”&#xff08;Heap&…

电脑IP地址怎么修改?http代理ip设置方法有哪些?

在互联网时代&#xff0c;我们的网络已经成为我们生活、工作和学习中不可或缺的一部分。有时候&#xff0c;为了保护我们的隐私或者突破网络限制&#xff0c;我们需要修改电脑的IP地址。那么&#xff0c;电脑IP地址怎么修改呢&#xff1f;http代理ip设置方法有哪些呢&#xff1…

在JS中,手动添加标签

纯个人笔记 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, …

前端:实现二级菜单(二级菜单悬浮在一级菜单左侧)

效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, i…

正向和反向代理区别

文章目录 正向代理反向代理二者区别参考 正向代理 正向代理就是一个位于客户端和目标服务器之间的服务器&#xff0c;之间的这个服务器就是代理服务器 客户端为了从目标服务器获取内容&#xff0c;但是客户端由于限制无法直接访问到目标服务器&#xff0c;那么客户端就可以向…

VMware Workstation 无法连接到虚拟机问题排查(一)

文章目录 VMware Workstation无法连接到虚拟机问题排查1. 问题概述2. 排查思路3. 问题修改4. 总结 VMware Workstation无法连接到虚拟机问题排查 近期在使用新电脑安装VMware Workstation&#xff0c;启动虚拟机实例的时候出现失败&#xff0c;提示为:“VMware Workstation 无…

高性价比的挂耳式蓝牙耳机有哪些?学生党必入的几款蓝牙耳机推荐

在快节奏的现代生活中&#xff0c;蓝牙耳机已经成为了许多人不可或缺的伙伴&#xff0c;而对于预算有限的学生党来说&#xff0c;一副高性价比的挂耳式蓝牙耳机无疑是最理想的选择之一。本文将围绕这一主题&#xff0c;为大家推荐几款价格亲民、性能出色的挂耳式蓝牙耳机&#…

汉威科技亮相北京链博会:感知驱动,智链出行

11月28日&#xff0c;首届中国国际供应链促进博览会在北京中国国际展览中心&#xff08;顺义馆&#xff09;举办&#xff0c;该展会是全球首个以供应链为主题的国家级展会&#xff0c;设置智能汽车链、绿色农业链、清洁能源链、数字科技链、健康生活链5大链条和供应链服务展区&…

JRT实现缓存协议

上一篇介绍的借助ORM的增、删、改和DolerGet方法&#xff0c;ORM可以很精准的知道热点数据做内存缓存。那么就有一个问题存在&#xff0c;即部署了多个站点时候&#xff0c;如果用户在一个Web里修改数据了&#xff0c;那么其他Web的ORM是不知道这个变化的&#xff0c;其他Web还…

强基固本,红海云数字化重塑提升国企干部管理能力

国有企业的干部管理体系建设具有重要的战略意义&#xff0c;对于构建高素质专业化的干部队伍&#xff0c;推动企业高质量发展至关重要。特别是在党的二十大以后&#xff0c;建设中国特色现代企业制度&#xff0c;在完善公司治理中加强党的领导&#xff0c;加强党管干部党管人才…

15.spring源码解析-invokeBeanFactoryPostProcessors

BeanFactoryPostProcessor接口允许我们在bean正是初始化之前改变其值。此接口只有一个方法: void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory);有两种方式可以向Spring添加此对象: 通过代码的方式: context.addBeanFactoryPostProcessor 通过xml…

【UGUI】事件侦听EventSystem系统0学

前言介绍 EventSystem是Unity UGUI中的一个重要组件&#xff0c;用于处理用户输入事件&#xff0c;如点击、拖拽、滚动等。它负责将用户输入事件传递给合适的UI元素&#xff0c;并触发相应的事件回调函数&#xff08;就是你想要做的事情&#xff0c;自定义函数&#xff09;。 …

Chrome显示分享按钮

分享按钮不见了&#xff01; Chrome://flags Chrome Refresh 2023 Disabled 左上角的标签搜索会到右上角。

《第一行代码:Android》第三版-3.4.4体验Activity的生命周期

本文的代码是在主Activity中&#xff0c;重载了几个生命周期函数&#xff0c;在日志中打印出对应的日志信息&#xff0c;有两个按钮&#xff0c;负责启动另外的Activity&#xff0c;并回到主Activity 由此查看日志&#xff0c;来体会生命周期。 MainActivity.kt 文件如下 pac…

井盖倾斜监测方式,智能井盖传感器效果

大家是否都曾经想过&#xff0c;为什么路面上的井盖容易发生事故&#xff1f;其实这主要是因为井盖倾斜或者位移等异常状态出现时&#xff0c;由于人员巡查的范围较大从而无法及时察觉所导致的。为了保障道路行人和车辆的安全&#xff0c;对于井盖的监测需要不断完善和升级。而…

C++-多态

目录 一.多态的概念 二.多态的条件 三.对实现多态的条件进行解释 四.override和final 五.三重对比 六.虚函数表和虚函数表指针 七.静态的多态和动态的多态 一.多态的概念 多态的概念&#xff1a;通俗来说&#xff0c;就是多种形态&#xff0c;具体点就是去完成某个行为…

《第一行代码:Android》第三版-如何为一个Activity添加layout文件

确切地说就是讲如何给一个不带view的Activity添加一个view&#xff0c;就是添加一个layout文件。 新建安卓项目&#xff0c;如果选择&#xff1a;就会给你创建一个没有view的Activity&#xff0c;如果后来你发现需要为这个Activity添加view&#xff0c;就是添加一个布局文件怎…

高速USB转以太网芯片CH397 UBOOT使用教程

简介 CH397 是一款高集成度、低功耗的 USB 网卡芯片&#xff0c;内置青稞 RISC-V 处理器、符合 USB2.1 协议规 范的高速 USB 控制器及收发器 PHY、以及符合 IEEE802.3 协议规范、支持 10M/100M 网络的以太网 MACPHY。已适配各类台式电脑、笔记本电脑、平板电脑、游戏机等的标准…