ruoyi-vue前后端分离web适配达梦DM数据库

参考连接:

  1. 若依3.8.7集成达梦8打包遇到的坑如何解决_若依 达梦-优快云博客
  2. 若依@v3.8.6前后端分离版集成达梦数据库(DM8)_若依 达梦-优快云博客

一、引入驱动包

1.在ruoyi-admin的pom.xml中引入驱动

<!-- 达梦数据库驱动 -->
<dependency>
    <groupId>DmJdbc</groupId>
    <artifactId>dm.jdbc.driver</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/DmJdbcDriver18.jar</systemPath>
</dependency>

2、驱动导入

DM JDBC 驱动 jar 包在 DM 安装目录 /dmdbms/drivers/jdbc中,如果直接引用jar包可以到这个文件中找。

在ruoyi-admin下创建lib文件夹,将DmJdbcDriver18.jar放入。

3、修改application-druid.yml文件的数据库连接

运行ruoyi-admin下面的clean和package,运行一下ruoyi(Root)总工程下面的install。

ps:数据库可以创建一个用户,然后会自动创建同名的模式,数据表都创建在这个模式下面。之后用这个账号密码登录,这样sql语句中就不用每句话都加模式名称。

4、打包配置修改

需要添加<includeSystemScope>true</includeSystemScope>,这样打包的时候才能把引用的驱动打包到压缩包里面。否则会报错找不到驱动。

二、sql语句兼容

  1. DATE_SUB(NOW(),INTERVAL 1 MINUTE)要改写成select DATE_SUB(NOW(),INTERVAL '1' MINUTE);

  2. SysMenuMapper.xml中`query`带单引号,删掉;

  3. group by后面要加上select的全部字段;

  4. group by 后两个表中都有的列,需要增加别名区分

       SELECT xxx table a  GROUP BY a.monitor_time,type  -- 这里要加a

    5. date_add函数使用DATEADD函数DATEADD(interval, number, datetime)

      interval 是时间间隔的单位,如年(YY)、月(MM)、日(DD)、小时(HH)、分钟      (MI)、秒(SS)等。测试发现YEAR/MONTH/DAY/HOUR/MINNUTE/SECOND可用。

    number 是要添加或减去的时间间隔的数量。如果为负数,则表示减去相应的时间间隔。

    datetime 是原始的日期时间值

   6. 建表语句,VARCHAR(5)改成"param_name" VARCHAR(20),否则插入时报错长度超出定     义;

(DM:如果数据库字符集是GB18030,则一个中文字符占2个字节,16位,varchar(2*n)可以允许n个汉字输入。同时chr(n)允许的范围是0~128。在UTF-8字符集的数据库中一个中文字符占3个字节,而在GBK字符集的数据库中一个中文字符占2个字节。

MYSQL:GBK编码:一个汉字占2个字节;UTF-8编码:一个汉字占3个字节。mysql数据库varchar是以字符为单位的,一个汉字即一个字符,varchar(10)能存10个汉字,占30个字节。

迁移数据库时选择强制为字符存储。

参考链接:https://blog.youkuaiyun.com/best924133514/article/details/130069278)

   7. select xx as 列名,列名为中文时,需要用双引号括住。

      例如:

      SELECT MAX(CASE monitor_time WHEN 1 THEN x ELSE NULL END)  1月,改成         SELECT MAX(CASE monitor_time WHEN 1 THEN x ELSE NULL END)  as "1月"

     8. date截取日期函数,要用to_char替换, date(#{createTime})改成 to_char(#{createTime},'yyyy-mm-dd');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值