2.ruoyi(前后不分离)框架迁移达梦数据库(一)

部署运行你感兴趣的模型镜像

一、JDBC依赖

  1. 修改admin子模块的pom文件,将mysql-jdbc依赖换成dm-jdbc依赖;

https://mvnrepository.com/artifact/com.dameng/DmJdbcDriver18/8.1.3.140

修改文件如下:

网上看到的这个依赖的名字很多,主要参考我上面网页上maven提供的写法。

二、数据库连接池配置

  • 配置修改如下:
# 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: dm.jdbc.driver.DmDriver
        druid:
            # 主库数据源
            master:
                url: jdbc:dm://[ip]:[port]
                username: SYSDBA
                password: ***
  • 修改结果:

注意,上面url这样写就行,不能像mysql似的后面还有一串,如果加上就报错了

三、Pagehelper方言设置

  • 修改如下:
# PageHelper分页插件
pagehelper: 
  helperDialect: oracle
  supportMethodsArguments: true
  params: count=countSql 

四、适配DM不支持的SQL函数

1、replace into函数:记录在线用户功能,SysUserOnlineMapper里的saveOnline 方法,用到了不支持的replace into函数,需替换成merge into函数;

<insert id="saveOnline" parameterType="SysUserOnline">
    replace into sys_user_online(sessionId, login_name, dept_name, ipaddr, login_location, browser, os, status, start_timestamp, last_access_time, expire_time)
    values (#{sessionId}, #{loginName}, #{deptName}, #{ipaddr}, #{loginLocation}, #{browser}, #{os}, #{status}, #{startTimestamp}, #{lastAccessTime}, #{expireTime})
</insert>

  修改后如下

<insert id="saveOnline" parameterType="SysUserOnline">
	merge into sys_user_online
		using (select #{sessionId} sessionId, #{loginName} login_name, #{deptName} dept_name, #{ipaddr} ipaddr, #{loginLocation} login_location, #{browser} browser, #{os} os,
			              #{tatus} status, #{startTimestamp} start_timestamp, #{lastAccessTime} last_access_time, #{expireTime} expire_time from dual) d
			on sys_user_online.sessionId = d.sessionId
			when matched then
				update set sys_user_online.login_name = d.login_name, sys_user_online.dept_name = d.dept_name, sys_user_online.ipaddr = d.ipaddr,
				    sys_user_online.login_location = d.login_location, sys_user_online.browser = d.browser, sys_user_online.os = d.os, sys_user_online.status = d.status,
				    sys_user_online.start_timestamp = d.start_timestamp, sys_user_online.last_access_time = d.last_access_time, sys_user_online.expire_time = d.expire_time
			when not matched then
				insert (sessionId, login_name, dept_name, ipaddr, login_location, browser, os, status, start_timestamp, last_access_time, expire_time)
				    values(d.sessionId, d.login_name, d.dept_name, d.ipaddr, d.login_location, d.browser, d.os, d.status, d.start_timestamp, d.last_access_time, d.expire_time)
</insert>

2、find_in_set:部门管理,SysDeptMapper里用到了不支持的find_in_set函数,可替换成instr函数

-- 原函数
find_in_set(#{deptId}, ancestors)
-- 新函数
instr(','||ancestors||',' ,  ','|| #{deptId} ||',') 

五、注意事项

  1. char类型,长度由1变成4,读出的数据会补空,如‘1 ’,会引起系统显示/反填异常;

六、小结

  1. 至此,整个项目(代码生成模块除外)基本可以正常运行了,项目适配的第一阶段结束;
  2. sql函数问题可能存在未发现的,只能遇到再修改;
  3. 代码生成模块需要读取数据库的表结构等信息,改动较大,暂未进行;需先查找一下DM的相关资料,不知道是否可行;如果能够适配的话,会另外记录一篇。

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值