java项目mysql转postgresql

news2025/3/15 17:10:33

特殊函数 :
mysql:

        find_in_set(?, ancestors)

postgresql:

        ? = ANY (string_to_array(ancestors,','))

mysql:

        date_format(t1.oper_time, '%Y-%m-%d')

postgresql:

        rksj::date

        to_char(inDate,'YYYY-MM-DD')

mysql:

        concat(t1.id, ifnull(t1.perms, ''))

postgresql:

        concat(t1.id, COALESCE(t1.perms,''))

JDBC链接

按顺序访问public、sys、xxx数据库的表,表名不能重复,无需加前缀;

jdbc_url=jdbc:postgresql://127.127.0.1:5432/dbname?currentSchema=public,sys,xxx

仅访问sys库,若系统里面还需要访问xxx数据库,那么必须加前缀加个点 “xxx.”;

jdbc_url=jdbc:postgresql://127.127.0.1:5432/dbname?currentSchema=sys

最后,mysql支持自动类型转换,postgresql是强类型数据库,特别注意数字与字符串在写SQL时候的区分;字符串必须带单引号!

注意,postgresql查询结果集的字段名称,只支持小写!可能会导致设置JavaBean不起作用!



1、使用navicat工具把mysql的数据库复制一份到postgresql中对应的数据库中

2、修改application-druid.yml的相应的参数
driverClassName: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/xx_xxx
validationQuery: SELECT 1

3、修改postgresql数据中qrtz_job_details表中varchar 1为varchar 10,否则运行会提示:对于可变字符类型来说,值太长了(1)

4、在ScheduleConfig中添加prop.put(“org.quartz.jobStore.driverDelegateClass”, “org.quartz.impl.jdbcjobstore.PostgreSQLDelegate”);

5、全局替换项目中使用的sysdate()函数为now(),因为postgresql数据库没有sysdate()函数


6、全局替换项目中使用的ifnull()函数为coalesce(),因为postgresql数据库没有ifnull()函数。注意只替换ifnull为coalesce,不带括号。


7、修改部门查询SQL中使用到的find_in_set函数,把 find_in_set(#{deptId}, ancestors) 替换cast(#{deptId} as varchar) = any(string_to_array(ancestors,','))

8、处理数据库中表的自增问题,mysql数据库支持直接对主键自增,postgresql数据库可更改MySQL主键自增auto_increment为PGSql的序列类型BIGSERIAL

也可通过建立序列的方式来实现对主键的自增,所以需要对所有主键自增的表进行序列创建和关联。完整可执行SQL

--创建用户表ID自增序列
create sequence public.sys_user_id_seq
increment 1
start 200
minvalue 1
maxvalue 99999999
cache 1;

--把序列和用户表ID关联上
alter table public.sys_user alter column user_id set default nextval('public.sys_user_id_seq');

9、修改Mapper中 status = 0 为 status = ‘0’

10、修改数据库中的默认值
如:sys_user中的user_type、sex、status、del_flag的默认值

11.sys_menu 表中的两个属性类型int4改为varchar
12.

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

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

相关文章

基于北斗RTK+UWB矿山智能人车定位系统

露天矿山开采环境复杂,作业危险系数高,安全生产隐患多。智能人车定位技术在保障露天矿山安全生产方面具有重要作用。通过实时监测人员和车辆的位置和行动,可以有效防止事故发生、提高工作效率和管理水平。 华安联大以露天矿山安全生产为出发…

Ubuntu 下安装Qt5.12.12无法输入中文解决方法

Ubuntu 下安装Qt5.12.12无法输入中文解决方法 一,环境: (1)VMware Workstation 15 Pro (2)Ubuntu 20.04 (3)Qt 5.12.12 64bits (4)Qt Creator 5.0.2 &#…

基于 OV5640 摄像头理论知识讲解-成像和采样原理

基于OV2640/ OV5640 的图像采集显示系统系列文章目录: (1)基于 OV5640 摄像头理论知识讲解-成像和采样原理 (2)基于 OV5640 摄像头理论知识讲解-数字接口和控制接口 (3)基于 OV5640 摄像头理论知…

Qt应用开发(基础篇)——字体选择器 QFontDialog

一、前言 QFontDialog类继承于QDialog,是一个设计用来选择字体的对话框部件。 对话框窗口QDialog QFontDialog字体选择对话框,设计用来让用户选择某一种字体,一般用于文本编辑窗口、标签显示和一些需要文本输入的场景。你可以直接使用静态函数…

2、DVWA——命令注入

文章目录 一、命令注入1.1 概述1.2 判断命令注入流程 二、low2.1 通关思路2.2.源码分析 三、Medium3.1 通关思路3.2 源码分析 四、high4.1 通关思路4.2 源码分析 五、impossible六、总结 一、命令注入 1.1 概述 命令注入的目标是通过易受攻击的应用程序在主机操作系统上执行任…

『赠书活动 | 第十八期』《深入浅出SSD:固态存储核心技术、原理与实战》

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 『赠书活动 | 第十八期』 本期书籍:《深入浅出SSD:固态存储核心技术、原理与实战》 赠书规则:评论区:点赞&…

【力扣每日一题】2023.8.29 带因子的二叉树

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一些元素,让我们用这些元素连接形成特定的二叉树,每种元素可以使用任意次数,形成的二叉树要…

【深度解析】朗逸与宝来汽车:哪款更适合你?

在汽车市场中,朗逸和宝来都是非常受欢迎的车型。它们各自都有独特的优点和缺点,那么,究竟哪款车更适合你呢?让我们一起来深度解析一下。 朗逸,作为大众的入门级车型,以其稳定的性能和较高的性价比赢得了消费…

深入详解ThreadLocal

本文已收录至GitHub,推荐阅读 👉 Java随想录 微信公众号:Java随想录 原创不易,注重版权。转载请注明原作者和原文链接 文章目录 什么是ThreadLocalThreadLocal 原理set方法get方法remove方法 ThreadLocal 的Hash算法ThreadLocal …

海川润泽气泡水位计 重磅上线

一、概述 以市场为导向,海川润泽推出新款气泡水位计(型号:HC-QPSW10-S)。气泡水位计具有测量精度高,免气瓶,免测井,免维护,抗振动,寿命长等特点,特别适用于流…

印刷行业MES系统解决方案

印刷行业存在许多问题,这些问题可能因地区、技术和市场变化而有所不同。以下是一些可能的印刷行业现存问题: 1.环保问题:印刷过程中使用的化学品和材料可能对环境造成污染。废墨、废纸、有毒化学品等的处理和处理成为一个重要的问题。 2.…

优思学院|六西格玛推行为什么会失败?应如何避免?

六西格玛项目可以为企业带来丰厚的经验和巨大的利益;然而,并非所有的项目都能达到预期的效果。根据一项在国外的调查发现,在184家受访公司中,80.6%的公司声称六西格玛工作未能成功实现他们的预期的价值,74.1%的公司说他…

UG\NX二次开发 代工分享的“单个体XY排料工具”源码

文章作者:代宇(Q:873058673) 简介: 单个体XY排料,昨天代工在开发群里分享了一个排料的视频,我觉得挺有意思,就私聊要来了源码,经过作者同意可以分享给大家。请欣赏: 效果: 代码: //单个体XY排料 代工QQ:873058673 //-------------------------------…

亥姆霍兹线圈的几个特点

亥姆霍兹线圈可以用于磁学、电子学和核物理学等领域的实验研究中,是一种常见的基础实验仪器。亥姆霍兹线圈有以下几个特点: 1、磁场均匀性好:由于该线圈的结构和定位方式,使得两个线圈的磁场强度和方向都非常均匀,可以…

R语言和Python用泊松过程扩展:霍克斯过程Hawkes Processes分析比特币交易数据订单到达自激过程时间序列...

全文下载链接:http://tecdat.cn/?p25880 本文描述了一个模型,该模型解释了交易的聚集到达,并展示了如何将其应用于比特币交易数据。这是很有趣的,原因很多。例如,对于交易来说,能够预测在短期内是否有更多…

IDA Python 使用总结

环境配置 切换 python 版本 运行 IDA 安装目录下的 idapyswitch.exe ,选择使用的 python 解释器。 在 PyCharm 中写 IDAPython 脚本 在 PyCharm 的设置→项目→Python解释器点击设置选择全部显示… 点击如下位置添加自定义路径 路径选择 IDA Pro 7.6\python\3…

国标GB28181视频平台EasyGBS国标平台激活码授权提示“授权失败”的问题解决方案

EasyGBS平台是基于国标GB28181协议的视频云服务平台,支持多路设备接入,并对多平台、多终端分发出RTSP、RTMP、FLV、HLS、WebRTC等多种格式的视频流。平台可为大数据等综合性监管平台提供极强的视频能力,既能作为能力平台为业务层提供接口调用…

Boost开发指南-4.12utility

utility utility库不是一个有统一主题的Boost库,而是包含了若干个很小但有用的工具。 本章开头介绍的noncopyable.swap都曾经被归类在utility库里(现在则属于core库),此外utility还包括其他很多个实用类,如 base_from_member、compressed_pair、checke…

操作系统复习总结5

操作系统复习总结,仅供笔者复习使用,参考教材: 《操作系统原理》 - 何静媛编著. 西安电子科技大学出版社《操作系统考研复习指导》2024年 - 王道论坛组编. 电子工业出版社 本文主要内容为:输入输出管理; 计算机系统…

经典卷积网络

目录 一、经典神经网络出现的时间线​编辑 二、LeNet 三、AlexNet 四、VGGNet 五、InceptionNet 六、ResNet 总结: 一、经典神经网络出现的时间线 二、LeNet 背景:LeNet由Yann LeCun于1998年提出,卷积网络开篇之作。 解释&#xff1…