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

若依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

http://www.cnnetsun.cn/news/635595.html

相关文章:

  • ‌用LangChain构建测试知识图谱:让AI真正理解你的业务逻辑
  • 企业微信 API 二次开发:外部群主动推送消息的技术实现与限制详解
  • 踩坑三周,我终于把 Claude Code 和 Codex 塞进了浏览器— 一个让手机也能写代码的疯狂想法
  • 炸裂!LangGraph Agent工作流程图解,从文本分类到自动生成摘要,AI编程小白也能轻松上手!
  • 哪些类型的产品需要做 CCC 认证?
  • 手把手教你用7款AI写论文工具,精准控率无压力操作指南
  • 【AI开发必备】Weaviate向量数据库让大模型秒懂人类语言!零代码小白也能部署的AI神器,附完整教程+实战案例!
  • 用 XinServer 做后台运营平台的完整流程
  • DeepSeek降AI指令真的有用吗?亲测3招高效降AIGC法!
  • Verdi中查看二维数组 (array) 波形或内容
  • 2025 CTF 实战不踩雷!自动化脚本(覆盖 Web / 逆向)+ 赛事表,搭配 e 春秋靶场 + 分阶段路线规划!
  • 谷歌云与国内云,我用亲身踩坑经历告诉你到底该怎么选
  • K8S CCM简介
  • Python 高阶函数不变式推导:动态语境下的逻辑守恒锚点与实践路径
  • AEC控制算法
  • 写论文软件哪个好?实测揭秘:宏智树 AI 凭全流程服务成学术刚需
  • 网安冰火两重天:480 万缺口下,裁员潮 + 一线饱和 + 二三线降薪 30%,核心缺高端实战人才!
  • 大模型技术解析:从AI基础到LLM核心原理,小白也能看懂
  • 【风控】逻辑回归算法
  • 基于springboot的毕业生招聘职位推荐系统
  • Formizee:把表单数据牢牢握在手里的开源神器
  • 无人机航拍黑匣子目标检测数据集_91张高清图像_907个精确标注_适用于计算机视觉模型训练与评估
  • 人工智能下游应用端产业链梳理与投资逻辑分析【20260115】
  • Qt 小技巧:如何用 Q_PROPERTY 管理属性
  • kanass实践教程 - 如何使用kanass高效的管理项目
  • 基于深度学习的脑肿瘤检测系统(YOLOv8+YOLO数据集+UI界面+Python项目+模型)
  • 救命!挖到零基础转网安捷径!超详细建议 + 分步骤教学,从入门到精通不踩坑!
  • 恐怖!不懂黑客技术也能发起攻击?SQL 注入 / ARP 防护等关键防御必学!
  • AI大模型100个核心知识点全解析:从入门到精通
  • 收藏!大模型入门核心:Transformer架构演进全解析(小白/程序员必看)