news 2026/6/15 17:38:46

若依vue使用DM8数据库代码生成不可以报错问题解决。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
若依vue使用DM8数据库代码生成不可以报错问题解决。

本人也是下载了无数个版本的ruoyi,但是都是代码生成相关模块不可用。

在一周的不屑努力下,发现了一篇博文,更改相关函数后即可。

注意两个文件都有要改动的地方。

下面是解决方法:

一、GenTableColumnMapper
这里是一个方法

<select id="selectDbTableColumnsByName" parameterType="String" resultMap="GenTableColumnResult"> select t3.COLUMN_NAME as column_name, (CASE WHEN (t3.NULLABLE = 'N' and t4.CONSTRAINT_TYPE !='P') THEN '1' ELSE NULL END) as is_required, IF(t4.CONSTRAINT_TYPE = 'P', 1, 0) as is_pk, t3.COLUMN_ID as sort, t5.COMMENTS as column_comment, ( CASE WHEN (t3.TYPE = 'INT' OR t3.TYPE = 'INTEGER' OR t3.TYPE = 'BIGINT' OR t3.TYPE = 'TINYINT' OR t3.TYPE = 'SMALLINT') and t4.CONSTRAINT_TYPE = 'P' THEN '1' ELSE '0' END ) AS is_increment, DATA_TYPE as DATA_TYPE from ((select COLUMN_NAME, COLUMN_ID, concat(DATA_TYPE, '(', DATA_LENGTH, ')') as DATA_TYPE, DATA_TYPE as TYPE, TABLE_NAME, NULLABLE from SYS.USER_TAB_COLUMNS WHERE table_name = (#{tableName})) t3 left join (select COMMENTS, COLUMN_NAME, TABLE_NAME from SYS.USER_COL_COMMENTS) t5 ON (t3.COLUMN_NAME = t5.COLUMN_NAME and t3.TABLE_NAME = t5.TABLE_NAME) left join (select t1.CONSTRAINT_TYPE, t1.OWNER, t1.TABLE_NAME, t2.CONSTRAINT_NAME, t2.COLUMN_NAME from (select CONSTRAINT_NAME, CONSTRAINT_TYPE, OWNER, TABLE_NAME from SYS.USER_CONSTRAINTS) t1 inner join (select CONSTRAINT_NAME, OWNER, TABLE_NAME, COLUMN_NAME from SYS.USER_CONS_COLUMNS) t2 ON (t1.TABLE_NAME = t2.TABLE_NAME and t1.CONSTRAINT_NAME = t2.CONSTRAINT_NAME) where t1.CONSTRAINT_TYPE = 'P') t4 ON (t3.COLUMN_NAME = t4.COLUMN_NAME and t3.TABLE_NAME = t4.TABLE_NAME)) order by t3.COLUMN_ID </select>

二、GenTableMapper
这里是三个方法

<select id="selectDbTableList" parameterType="GenTable" resultMap="GenTableResult"> select t1.TABLE_NAME as table_name, t2.COMMENTS as table_comment, NULL as create_time, NULL as update_time from SYS.USER_TABLES t1 inner join SYS.USER_TAB_COMMENTS t2 ON t1.TABLE_NAME = t2.TABLE_NAME WHERE t1.TABLE_NAME NOT LIKE 'qrtz_%' AND t1.TABLE_NAME NOT LIKE 'gen_%' AND t1.TABLE_NAME NOT IN (select table_name as TABLE_NAME from gen_table) <if test="tableName != null and tableName != ''"> AND lower(t1.TABLE_NAME) like lower(concat('%', #{tableName}, '%')) </if> <if test="tableComment != null and tableComment != ''"> AND lower(t1.TABLE_NAME) like lower(concat('%', #{tableName}, '%')) </if> </select>
<select id="selectDbTableListByNames" resultMap="GenTableResult"> select t1.TABLE_NAME as table_name, t2.COMMENTS as table_comment, NULL as create_time, NULL as update_time from SYS.USER_TABLES t1 inner join SYS.USER_TAB_COMMENTS t2 ON t1.TABLE_NAME = t2.TABLE_NAME WHERE t1.TABLE_NAME NOT LIKE 'qrtz_%' AND t1.TABLE_NAME NOT LIKE 'gen_%' and t1.TABLE_NAME in <foreach collection="array" item="name" open="(" separator="," close=")"> #{name} </foreach> </select>
<select id="selectTableByName" parameterType="String" resultMap="GenTableResult"> select t1.TABLE_NAME as table_name, t2.COMMENTS as table_comment, NULL as create_time, NULL as update_time from SYS.USER_TABLES t1 inner join SYS.USER_TAB_COMMENTS t2 ON t1.TABLE_NAME = t2.TABLE_NAME where t2.COMMENTS <![CDATA[ <> ]]> '' and t1.TABLE_NAME = #{tableName} </select>

系统表中有ALL、DBA、USER类型的,为了防止权限有问题,取的系统表全是取的是USER中的。
找到对应的SQL方法直接替换就行了

使用时注意传入的参数是tableName
有个select Database,这个没做处理,不过不影响使用,

identity这个自增的字段在系统表中没有找到,
我是用int类型并且是主键的情况是判断的,
这个主要是因为ID自增的问题,
如果有找到的话,可以给评论下,我优化下,

全部的数据来源都是从SYS的视图中获取的,关联关系的都是通过视图中的字段和数据对应找的,

现在我们这边使用的是UUID,所以不会出现问题。
暂时的话,在生成代码的时候,没发现什么问题,代码生成正常,一切使用正常。

以上是原文,下述为原文连接。作者:AzureBlue0001
原文链接:https://blog.csdn.net/qq_41840735/article/details/127877595

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 13:32:25

自然语言驱动:AI如何革新测试脚本生成

自动化测试的演进与挑战 传统自动化测试依赖测试工程师编写脚本&#xff0c;需掌握编程语言&#xff08;如Python、Java&#xff09;和测试框架&#xff08;如Selenium&#xff09;。这不仅门槛高&#xff0c;且维护成本巨大——需求变更常导致脚本大面积重构。随着生成式AI爆…

作者头像 李华
网站建设 2026/6/15 15:59:18

从“人工评审”到“AI评审”:我如何用LLM自动审查测试用例一致性

‌一、背景&#xff1a;人工评审的三大致命瓶颈‌在传统软件测试流程中&#xff0c;测试用例一致性审查依赖人工逐条核对需求文档、设计规格与用例描述。这一过程存在不可忽视的系统性缺陷&#xff1a;瓶颈类型具体表现对测试效率的影响‌主观偏差‌不同评审者对“用户友好”“…

作者头像 李华
网站建设 2026/6/15 13:31:03

企业微信二次开发:外部群主动推送的底层逻辑

​ ​ QiWe开放平台 开发者名片 API驱动企微自动化&#xff0c;让开发更高效 核心能力&#xff1a;企微二次开发服务 | 多语言接入 | 免Root授权 官方站点&#xff1a;https://www.qiweapi.com 团队定位&#xff1a;专注企微API生态的技术服务团队 对接…

作者头像 李华
网站建设 2026/6/10 5:34:19

LiveTalking本地化部署指南

LiveTalking 介绍 LiveTalking 是一个开源的实时交互数字人系统&#xff0c;通过多模态AI技术实现语音驱动的虚拟形象生成&#xff0c;支持低延迟视频流输出&#xff0c;适用于虚拟客服、直播、教育等多种场景。‌ github地址&#xff1a;https://github.com/lipku/LiveTalki…

作者头像 李华
网站建设 2026/6/15 15:56:05

面向工业场景的高效目标检测系统:基于BiFPN和注意力机制的YOLOv8架构优化及实现

文章目录 **面向工业场景的高效目标检测系统:基于BiFPN与注意力机制的YOLOv8架构优化与实现** **第一章:核心技术架构——双向特征金字塔与注意力协同** **第二章:项目环境配置与数据预处理** **第三章:改进模块完整实现** **第四章:完整网络架构配置** **第五章:优化训练…

作者头像 李华
网站建设 2026/6/11 4:52:40

2026年物联网平台选型指南:为什么ThingsKit成为企业首选?

2026年已成为企业数字化转型的关键节点。在这一背景下&#xff0c;选择一个稳定、高效、可扩展且符合国产化要求的物联网平台&#xff0c;已不再是“锦上添花”&#xff0c;而是关乎业务成败的战略决策。 在众多国内外物联网平台中&#xff0c;ThingsKit 凭借其“开箱即用、低代…

作者头像 李华