当前位置: 首页 > news >正文

若依框架数据源切换为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 != ''">&lt;!&ndash; 开始时间检索 &ndash;&gt;AND date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')</if><if test="params.endTime != null and params.endTime != ''">&lt;!&ndash; 结束时间检索 &ndash;&gt;AND date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')</if>order by create_time desc-->
</select>
http://www.lryc.cn/news/235004.html

相关文章:

  • java 访问sqlserver 和 此驱动程序不支持jre1.8错误
  • C/C++字符判断 2021年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
  • Kotlin语言实现单击任意TextVIew切换一个新页面,并且实现颜色变换
  • Flume学习笔记(4)—— Flume数据流监控
  • 使用webhook发送企业微信消息
  • C语言的由来与发展历程
  • python django 小程序博客源码
  • Android并发编程与多线程
  • ChatGPT简介及基本概念
  • 学习模拟简明教程【Learning to simulate】
  • 电子学会C/C++编程等级考试2021年12月(一级)真题解析
  • 数字游戏
  • k8s pod 处于Terminating的原因分析和解决处理——筑梦之路
  • 西南科技大学814考研二
  • oracle21c报错 【ORA-65096: 公用用户名或角色名无效】
  • C++ 递增/递减运算符重载
  • Android 13.0 无源码app增加授予相关权限
  • CI/CD相关概念学习
  • 一、认识STM32
  • vue-router的编程式导航有哪些方法?
  • 连接服务器上mysql数据库
  • IDEA 中设置 File Header 以及自定义类、方法注释模板的方法
  • 【数据结构】图的存储结构及实现(邻接表和十字链表)
  • ROS Turtlebot3多机器人编队导航仿真
  • 端口配置错误,导致RabbitMq启动报错
  • <MySQL> 什么是JDBC?如何使用JDBC进行编程?
  • 基于安卓android微信小程序的装修家装小程序
  • 基于SSM的小区物业管理系统设计与实现
  • c语言免杀火绒
  • MyBatis #{} 和 ${} 的区别