springboot + mybatis-plus + 前端 单体项目demo

mysql 与 达梦数据库同时使用

前一段时间因为工作要求,需要用到一个前后端一体,mysql 和 达梦数据库共用的一个单体项目。然后我在网上找了一个demo改了改,改的过程中遇到了一些坑,顺便分享一下。附源码

达梦数据库

达梦数据库的语法和常用的mysql语法有很大的差异。达梦数据库的下载自己去网上找,
我用的是达梦8

创建模式(数据库)
不管创建语句是大小写,创建后名称都为大写

CREATE SCHEMA 模式(库)名 AUTHORIZATION 用户名;

删除模式(数据库)

drop schema 模式(库)名;

切换模式(数据库)
(库名不区分大小写)

set schema 模式(库)名;

达梦建表语句
达梦数据库建表语句 int类型不能有长度,表名及字段名不能加单引号(关键字则必须加单引号不然报错),主键定义语法不同。 这个表里的 identity 字段就是关键字,如果不加单引号执行建表语句报错。
注意:不熟悉达梦数据库的建表语句 可以拿 mysql 的建表语句去让 chatgpt 转换一下。

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  address VARCHAR(255),
  avatar VARCHAR(255),
  birthday TIMESTAMP,
  email VARCHAR(255),
  `identity` INT,
  is_admin INT,
  nickname VARCHAR(255),
  password VARCHAR(255),
  size INT,
  tel VARCHAR(255),
  username VARCHAR(255)
);

mysql建表语句对比
identity 在mysql中不算关键字,操作起来不会有问题

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `address` varchar(255) DEFAULT NULL,
  `avatar` varchar(255) DEFAULT NULL,
  `birthday` datetime(6) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `identity` int(11) DEFAULT NULL, 
  `is_admin` int(11) DEFAULT NULL,
  `nickname` varchar(255) DEFAULT NULL,
  `password` varchar(255) DEFAULT NULL,
  `size` int(11) DEFAULT NULL,
  `tel` varchar(255) DEFAULT NULL,
  `username` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

关键字
如果表中的字段是关键字的话,必须在实体类上加上注解:@TableField(“identity”) 声明,否则在切换达梦数据库时报数据库字段异常。 注意:双引号中还包了一层反引号。
在这里插入图片描述

配置

在使用达梦数据库时,我在代码中使用了 PageHelper 分页插件,因为达梦数据库不兼容。所以要在配置里加一个PageHelper:helperDialect: oracle,如果不加这个会报错。但使用mysql数据源时要去掉。不然也会报错
在这里插入图片描述
**如上图配置,用哪个数据库就把那个打开,把不用的注释掉就行。**↑↑↑

代码

因为工作需要,代码中有一些手写的sql,sql中的函数是mysql可用的,达梦不兼容。
这些sql的方法有mybatis-plus自己的方法,我只是给注释掉了,需要的话自己调整代码。

如果放开的话,mysql和达梦数据库可以共用mybatis-plus自带的方法。特殊sql语法除外。
在这里插入图片描述
在这里插入图片描述

补充一下,我本地达梦数据库关键字是用反单引号包住就能用,但是我切到线上数据源的时候,发现单引号用不了,必须用双引号,可能跟达梦版本有关系。如果反单引号报语法错误,那就在实体类用注解加双引号 @TableField(““identity””)

在这里插入图片描述
在这里插入图片描述

  • 18
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值