若依框架数据源切换为pg库
一 切换数据源
在ruoyi-admin项目里引入pg数据库驱动
<dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>42.2.18</version>
</dependency>
修改配置文件里的数据源为pg
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: org.postgresql.Driverdruid:# 主库数据源master:url: jdbc:postgresql://192.168.119.128:5432/FDS?stringtype=unspecifiedusername: postgrespassword: ts123456
二 切换函数以及语法
因为pg库里没有dual表,所以把配置文件里validationQuery的值,从SELECT 1 FROM DUAL 换为:select version()来判断数据库是否正常连接
PageHelper分页插件换成pgsql的
pagehelper:helperDialect: postgresqlsupportMethodsArguments: trueparams: count=countSql
在mapper.xml里全局搜索sysdate(),换为now()
在mapper.xml里全局搜索ifnull(字段,‘’) 函数,换成 COALESCE(字段,‘’)
char类型的值,mysql可以不加引号,但是pg必须加单引号
mapper.xml文件里,搜索
status = 0,改为status = '0'
搜索`query` ,换为query
全局搜索database(),换为CURRENT_SCHEMA()
xml里搜索sysdate()函数,换为now()
三 加自增序列
凡是有自增主键的表,都要加自增序列
CREATE SEQUENCE sys_user_id_seqSTART WITH 3INCREMENT BY 1NO MINVALUENO MAXVALUE CACHE 1;-- 设置表某个字段自增
alter table sys_user alter column user_id set default nextval('sys_user_id_seq');-- 从当前最大id依次递增
--select setval('sys_user_id_seq',(select max(user_id) from sys_user));
CREATE SEQUENCE sys_oper_log_id_seqSTART WITH 3INCREMENT BY 1NO MINVALUENO MAXVALUE CACHE 1;-- 设置表某个字段自增
alter table sys_oper_log alter column oper_id set default nextval('sys_oper_log_id_seq');
-- 从当前最大id依次递增
--select setval('sys_oper_log_id_seq',(select max(oper_id) from sys_oper_log));
CREATE SEQUENCE sys_role_id_seqSTART WITH 3INCREMENT BY 1NO MINVALUENO MAXVALUE CACHE 1;-- 设置表某个字段自增
alter table sys_role alter column role_id set default nextval('sys_role_id_seq');
CREATE SEQUENCE sys_notice_id_seqSTART WITH 3INCREMENT BY 1NO MINVALUENO MAXVALUE CACHE 1;-- 设置表某个字段自增
alter table sys_notice alter column notice_id set default nextval('sys_notice_id_seq');
CREATE SEQUENCE sys_dict_type_id_seqSTART WITH 11INCREMENT BY 1NO MINVALUENO MAXVALUE CACHE 1;-- 设置表某个字段自增
alter table sys_dict_type alter column dict_id set default nextval('sys_dict_type_id_seq');
CREATE SEQUENCE sys_dept_id_seqSTART WITH 11INCREMENT BY 1NO MINVALUENO MAXVALUE CACHE 1;-- 设置表某个字段自增
alter table sys_dept alter column dept_id set default nextval('sys_dept_id_seq');SELECT 'CREATE SEQUENCE ' || sequence_name || ' START ' || start_value || ';' from information_schema.sequences;
CREATE SEQUENCE gen_table_id_seqSTART WITH 1INCREMENT BY 1NO MINVALUENO MAXVALUE CACHE 1;-- 设置表某个字段自增
alter table gen_table alter column table_id set default nextval('gen_table_id_seq');
CREATE SEQUENCE gen_table_column_id_seqSTART WITH 1INCREMENT BY 1NO MINVALUENO MAXVALUE CACHE 1;-- 设置表某个字段自增
alter table gen_table_column alter column column_id set default nextval('gen_table_column_id_seq');
CREATE SEQUENCE sys_post_id_seqSTART WITH 5INCREMENT BY 1NO MINVALUENO MAXVALUE CACHE 1;-- 设置表某个字段自增
alter table sys_post alter column post_id set default nextval('sys_post_id_seq');
CREATE SEQUENCE sys_dict_data_code_seqSTART WITH 30INCREMENT BY 1NO MINVALUENO MAXVALUE CACHE 1;-- 设置表某个字段自增
alter table sys_dict_data alter column dict_code set default nextval('sys_dict_data_code_seq');
查询序列
SELECT 'CREATE SEQUENCE ' || sequence_name || ' START ' || start_value || ';' from information_schema.sequences;
删除序列
DROP SEQUENCE sys_oper_log_id_seq
四 加默认值、加引号
凡是之前是char类型的字段,并且有默认值的,都需要在navicat里添加默认值,如sys_user表、sys_role、sys_dept表的del_flag、status字段,设置默认值,注意,要加引号。sys_menu、sys_post、sys_notice、sys_loggininfo、sys_job_log、sys_dict_type、sys_dict_data表的status字段,设置默认值0,加引号。

五 改代码
SysRole.java里的menuCheckStrictly、deptCheckStrictly改为int类型,index.vue里的menuCheckStrictly、deptCheckStrictly,由true改为1,搜索vue文件里的“父子联动”,注释掉。
GenTableMapper.xml里的id=“selectDbTableList”,改为下边这种
<select id="selectDbTableList" parameterType="GenTable" resultMap="GenTableResult">select * from information_schema.tableswhere table_schema = (select CURRENT_SCHEMA())AND table_name NOT LIKE 'qrtz_%' AND table_name NOT LIKE 'gen_%'AND table_name NOT IN (select table_name from gen_table)<if test="tableName != null and tableName != ''">AND lower(table_name) like lower(concat('%', #{tableName}, '%'))</if><!--<if test="tableComment != null and tableComment != ''">AND lower(table_comment) like lower(concat('%', #{tableComment}, '%'))</if><if test="params.beginTime != null and params.beginTime != ''"><!– 开始时间检索 –>AND date_format(create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d')</if><if test="params.endTime != null and params.endTime != ''"><!– 结束时间检索 –>AND date_format(create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d')</if>order by create_time desc-->
</select>
相关文章:
若依框架数据源切换为pg库
一 切换数据源 在ruoyi-admin项目里引入pg数据库驱动 <dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>42.2.18</version> </dependency>修改配置文件里的数据源为pg spring:d…...
java 访问sqlserver 和 此驱动程序不支持jre1.8错误
sqlserver数据如下; TestSQL.java; import java.sql.*;public class TestSQL {public static void main(String[] args) throws ClassNotFoundException, SQLException {String driverName "com.microsoft.sqlserver.jdbc.SQLServerDriver";…...
C/C++字符判断 2021年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
目录 C/C字符判断 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C字符判断 2021年12月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 对于给定的字符,如果该字符是大小写字母或…...
Kotlin语言实现单击任意TextVIew切换一个新页面,并且实现颜色变换
<LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:orientation"vertical"android:layout_height"match_parent"><!-- 这里放置你的其他视图组件 -->&…...
Flume学习笔记(4)—— Flume数据流监控
前置知识: Flume学习笔记(1)—— Flume入门-CSDN博客 Flume学习笔记(2)—— Flume进阶-CSDN博客 Flume 数据流监控 Ganglia 的安装与部署 Ganglia 由 gmond、gmetad 和 gweb 三部分组成。 gmond(Ganglia …...
使用webhook发送企业微信消息
文章目录 使用webhook发送企业微信消息企业微信群机器人思路实现总结 使用webhook发送企业微信消息 企业微信群机器人思路实现 1,在企业微信中新建一个群 2,在设置里面添加机器人 3,拿到webhook地址 在终端某个群组添加机器人之后…...
C语言的由来与发展历程
C语言的起源可以追溯到上世纪70年代,由Dennis Ritchie在贝尔实验室开发出来。C语言的设计目标是提供一种简洁、高效、可移植的编程语言,以便于开发底层的系统软件。在那个时代,计算机技术正在迅速发展,出现了多种高级编程语言&…...
python django 小程序博客源码
开发工具: PyCharm,mysql5.7,微信开发者工具 技术说明: python django html 小程序 功能介绍: 用户端: 登录注册(含授权登录) 首页显示搜索文章,文章分类…...
Android并发编程与多线程
一、Android线程基础 1.线程和进程 一个进程最少一个线程,进程可以包含多个线程进程在执行过程中拥有独立的内存空间,而线程运行在进程内 2.线程的创建方式 new Thread: 缺点:缺乏统一管理,可能无限制创建线程&…...
ChatGPT简介及基本概念
点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列点击跳转>ChatGPT和AIGC 👉关于作者 专…...
学习模拟简明教程【Learning to simulate】
深度神经网络是一项令人惊叹的技术。 有了足够的标记数据,他们可以学习为图像和声音等高维输入生成非常准确的分类器。 近年来,机器学习社区已经能够成功解决诸如对象分类、图像中对象检测和图像分割等问题。 上述声明中的加黑字体警告是有足够的标记数…...
电子学会C/C++编程等级考试2021年12月(一级)真题解析
C/C++等级考试(1~8级)全部真题・点这里 第1题:输出整数部分 输入一个双精度浮点数f, 输出其整数部分。 时间限制:1000 内存限制:65536输入 一个双精度浮点数f(0 < f < 100000000)。输出 一个整数,表示浮点数的整数部分。样例输入 3.8889样例输出 3 答案: //参…...
数字游戏
题目描述 小 K 同学向小 P 同学发送了一个长度为 8 的 01 字符串 来玩数字游戏,小 P 同学想要知道字符串中究竟有多少个 1。 注意:01 字符串为每一个字符是 0 或者 1 的字符串,如“101”(不含双引号)为一个长度为 3 …...
k8s pod 处于Terminating的原因分析和解决处理——筑梦之路
之前整理了一下各种资源长时间无法回收,解决处理的命令行 k8s 各种资源Terminationg状态处理 —— 筑梦之路_k8s自定义资源修改状态-CSDN博客 这里具体整理下pod长时间处于Terminating状态的相关知识,主要是对前面的补充和完善,作为笔记记录…...
西南科技大学814考研二
C语言数据结构与算法 线性表 顺序表(静态分配内存) #include <stdio.h> #include <stdbool.h> //静态顺序表 #define MAX_SIZE 8 //顺序表储存的数据类型 typedef int ElemType; typedef struct {ElemType data[MAX_SIZE];int length; }SeqList; //初始化顺序表…...
oracle21c报错 【ORA-65096: 公用用户名或角色名无效】
1.数据库版本 oracle21c 2.问题提示 创建用户提示【ORA-65096: 公用用户名或角色名无效】 create user 自定义用户名 identified by 密码;--例:用户为test1,密码为123456 create user test1 identified by 123456;三.解决办法及结果 oracle11g之后的版本ÿ…...
C++ 递增/递减运算符重载
作用: 通过重载递增运算符,实现自己的整型数据 总结: 前置递增返回引用,后置递增返回值 递增 #include<iostream> using namespace std;class MyInteger { private:int m_Num 0; public:friend ostream& operator<…...
Android 13.0 无源码app增加授予相关权限
1.概述 在13.0的系统rom产品定制化开发中,对于一些无源码app增加一些权限,比如悬浮窗权限,由于app内部没申请这个权限, 所以需要系统适配默认授予这个权限,就需要在PMS解析安装app的时候 授予悬浮窗权限就可以了 2.无源码app增加授予相关权限的核心类 frameworks/base/cor…...
CI/CD相关概念学习
文章目录 CI/CD相关概念学习前言CI/CD相关概念介绍集成地狱持续集成持续交付持续部署Devops CI/CD相关应用介绍JenkinsTekton PipelinesSpinnakerTravis CIGoCD CI/CD相关概念学习 前言 本文主要是介绍一些 CI/CD 相关的概念,通过阅读本文你将快速了解 CI/CD 是什么…...
一、认识STM32
目录 一、初识STM32 1.1 STM32的命名规则介绍 1.2 STM32F103ZET6资源配置介绍 二、如何识别芯片管脚 2.1 如何寻找 IO 的功能说明 三、构成最小系统的要素 一、初识STM32 1.1 STM32的命名规则介绍 以 STM32F103ZET6 来讲解下 STM32 的命名方法: &…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
