一、GenTableColumnMapper
这里是一个方法

<select id="selectDbTableColumnsByName" parameterType="String" resultMap="GenTableColumnResult">select t3.COLUMN_NAME                     as column_name,(CASEWHEN (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,(  CASEWHEN (t3.TYPE = 'INT' OR t3.TYPE = 'INTEGER' OR t3.TYPE = 'BIGINT' OR t3.TYPE = 'TINYINT' ORt3.TYPE = 'SMALLINT') and t4.CONSTRAINT_TYPE = 'P' THEN '1'ELSE '0' END  )                 AS is_increment,DATA_TYPE as DATA_TYPEfrom ((select COLUMN_NAME,COLUMN_ID,concat(DATA_TYPE, '(', DATA_LENGTH, ')') as DATA_TYPE,DATA_TYPE                                as TYPE,TABLE_NAME,NULLABLEfrom SYS.USER_TAB_COLUMNSWHERE table_name = (#{tableName})) t3left join (select COMMENTS, COLUMN_NAME, TABLE_NAME from SYS.USER_COL_COMMENTS) t5ON (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_NAMEfrom (select CONSTRAINT_NAME, CONSTRAINT_TYPE, OWNER, TABLE_NAME from SYS.USER_CONSTRAINTS) t1inner join (select CONSTRAINT_NAME, OWNER, TABLE_NAME, COLUMN_NAME from SYS.USER_CONS_COLUMNS) t2ON (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_timefrom SYS.USER_TABLES t1inner join SYS.USER_TAB_COMMENTS t2 ON t1.TABLE_NAME = t2.TABLE_NAMEWHERE 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_timefrom SYS.USER_TABLES t1inner join SYS.USER_TAB_COMMENTS t2 ON t1.TABLE_NAME = t2.TABLE_NAMEWHERE 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_timefrom SYS.USER_TABLES t1inner join SYS.USER_TAB_COMMENTS t2 ON t1.TABLE_NAME = t2.TABLE_NAMEwhere t2.COMMENTS <![CDATA[ <> ]]> ''and t1.TABLE_NAME = #{tableName}
</select>

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

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

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

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

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

解决若依框架中只适配MySQL的问题,若依框架完美适配达梦数据库的代码生成,适配其他框架原理相似。相关推荐

  1. 达梦数据库 find_in_set 函数适配

    在迁移MySQL的时候碰到一个问题:FIND_IN_SET 在达梦中运行会报错,在网上发现有很多人都记录了这个问题,借鉴网上的分享,我在此也记录一下,希望可以帮助被这个问题困扰的人. 首先:自建 FI ...

  2. 中标麒麟mysql 安装_在中标麒麟上安装达梦数据库V8

    一.VNC环境 测试机IP:119.96.110.196:5902 VNC密码:dameng123 root账号密码:dameng123 二.中标麒麟操作系统环境配置 2.1 上传达梦数据库安装介质 ...

  3. MySQL适配达梦数据库注意事项

    问题说明:达梦数据库jdbc驱动无法下载 问题说明:达梦数据库jdbc驱动版本 问题说明:hibernate方言驱动 问题说明:达梦不支持mysql默认时间函数 问题说明:达梦数据库不支持LAST_I ...

  4. 达梦数据库入门 - 零基础到入门 - 达梦云适配中心

    前言: 越来越多的同学或基于工作需求,或基于兴趣爱好上了解到了国产达梦数据库,但往往在想要学习新的知识的时候不知道该从何处入手,网上查询相关资料的话杂乱无章,往往让会令自己更加迷茫于该怎么入手去学习达 ...

  5. 【与达梦同行】DM8适配JetBrains_Exposed框架

    一.背景 近期,用户使用 Kotlin语言的 ORM 框架JetBrains/Exposed框架进行开发需要适配达梦数据库,查看Exposed官网发现原生支持的数据库不包含达梦数据库,随后进行适配操作 ...

  6. 查看达梦数据库表中的数据为乱码解决

    将数据库备份文件导入达梦数据库后,从windows启动应用系统,查看表中的数据时,表中的中文全部显示为乱码. 解决方法: 在目录C:\Windows\System32下创建文件dm_svc.txt,使 ...

  7. 达梦数据库喜中国家电网公司信息化软件框架采购竞争性谈判项目

    2010年11月,经过激烈的角逐,达梦数据库力排Oracle.IBM.微软等跨国数据库巨头,在国家电网公司信息化软件框架采购竞争性谈判项目中脱颖而出,成功中标. 达梦数据库凭借着高安全性.稳定性,高性 ...

  8. 达梦数据库中迁移过来的数据,在Mysql中批量添加注释,修改注释

    一.原因 数据是从达梦数据库中迁移过来的,迁移完成注释丢失 二.方法 利用 information_schema.COLUMNS 这个表 三.执行步骤 1.这是达梦数据库导出的注释 2.达梦的数数据库 ...

  9. Django适配达梦数据库

    目录 一.Django 概述 二.开发步骤 1. 实现效果 2. 编译安装驱动源码库 dmPython 和 django_dmPython 3. 手动创建 Django 项目 4. PyCharm 创 ...

最新文章

  1. 【原创】RabbitMQ 之 Access Control(翻译)
  2. 作为一名程序员,谁没跳过槽,“6”招让你“空降”大厂
  3. C语言的指针初始化特别注意一点
  4. Xcode工程添加第三方文件的详细分析 Create folder references for any added folders(转)
  5. 关于几个BeanPostProcessor各个回调的时机
  6. 学画画要花多少钱_美术生大学四年花费一般在多少 学美术有哪些出路
  7. logistic回归分析优点_SPSS统计分析全解析Logistic回归(逻辑回归)
  8. ubnt+ros 接入无线
  9. 哈铁职业学院 计算机,--哈尔滨铁道职业技术学院
  10. 免费在线二维DataMatrix码生成器
  11. 视频贴片广告有哪些形式,视频贴片广告展示形式如何?
  12. Infomages: Embedding Data into Thematic Images
  13. python初学者入门小项目之一:在 cowpy中增加自己的人物头像
  14. 短视频如何添加封面图
  15. 尺子英语怎么读计算机英语怎么读,尺子的英文是什么用英语怎么说
  16. css中元素横向放置,使用CSS将元素放置到右侧
  17. 【Py】pyecharts数据可视化案例——地下室空气治理
  18. php传输文件大小修改的限制
  19. 记第七届ACM校赛-回忆
  20. 数据可视化与文本分类_CodingPark编程公园

热门文章

  1. 携手应对全球医疗呼吸机短缺
  2. 中国科学院大学计算机复试线,2020中国科学院大学考研复试分数线已公布
  3. mysql创建函数失败_MYSQL创建函数出错如何解决
  4. lm358在哪个库里_LM358ST现货库存科美奇科技ST华南渠道商
  5. LPC2148的UART0初始化
  6. Qt 绘图之QGraphicsScene QGraphicsView QGraphicsItem详解
  7. idea实现类似于sout的自动补全快捷方式
  8. 实习生两分钟解决程序bug,老程序员笑笑不说话,还是太年轻?
  9. 江河湖泊生态监测系统解决方案
  10. 平面和三维曲面图相交求交线和画图