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

Mysql 脚本转换为drawio ER 脚本

Navicat 导出数据库脚本

在这里插入图片描述

通过代码转换脚本

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;/*** SQL 脚本转换为 drawio ER 脚本*/
public class SQLToMermaid {public static void main(String[] args) {String inputFilePath = "/Users/admin/Desktop/xxx.sql"; // 输入文件路径String outputFilePath = "/Users/admin/Desktop/xxx.txt"; // 输出文件路径System.out.println("Reading from: " + inputFilePath);System.out.println("Writing to: " + outputFilePath);try (BufferedReader br = new BufferedReader(new FileReader(inputFilePath));FileWriter fw = new FileWriter(outputFilePath)) {StringBuilder sqlContent = new StringBuilder();String line;// 读取整个文件内容while ((line = br.readLine()) != null) {sqlContent.append(line).append("\n");}String sql = sqlContent.toString();// 正则表达式Pattern tablePattern = Pattern.compile("CREATE TABLE `(\\w+)` \\((.*?)\\) ENGINE.*?COMMENT='(.*?)';",Pattern.CASE_INSENSITIVE | Pattern.DOTALL);// 匹配Matcher tableMatcher = tablePattern.matcher(sql);while (tableMatcher.find()) {String tableName = tableMatcher.group(1);String tableComment = tableMatcher.group(3);fw.write(tableName + "(" + tableComment + ")\n");String columnDefinitions = tableMatcher.group(2);String[] columns = columnDefinitions.split(",(?=\\s*`)");for (String column : columns) {Pattern columnPattern = Pattern.compile("`(\\w+)`\\s+\\w+.*?COMMENT\\s+'(.*?)'",Pattern.DOTALL);Matcher columnMatcher = columnPattern.matcher(column);if (columnMatcher.find()) {String columnName = columnMatcher.group(1);String columnComment = columnMatcher.group(2);fw.write("    " + columnName + ": " + columnComment + "\n");}}fw.write("\n"); // 表之间空一行}System.out.println("Output written to " + outputFilePath);} catch (IOException e) {e.printStackTrace();}}
}

得到的脚本:

custom(自定义表)id: 主键idname: 名称module: 引用类型1:报事类型模板2:报事详情ref_id: 关联表idtype: is_required: 是否必填subsidiary_rule_str: 附属规则json串is_del: 是否删除sort_code: 排序编码create_time: 创建时间creator_uid: 创建人idmodified_time: 修改时间modified_uid: 修改人ididentity(模板通知规则关联执行人)id: 主键ref_id: type区分关联键0工单类型id 1 SLA配置idtype: 关联类型 0工单类型执行1工单类型分派2SLA配置label_id: 类型标签type = 0: 0抄送;step: 步骤0非步骤 1,2,3,4,5升级步骤identity_type: 身份类型 0角色1人员identity_id: 身份id 

脚本导入drawio

在这里插入图片描述
得到了表:
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 使用LaTeX分章节撰写文档
  • LVS集群实现四层负载均衡详解(以nat,dr模式为例)
  • 【SQL Server】端口安全配置:SQL Server的安全最佳实践与防火墙规则配置
  • 前端(五):前端工程化
  • 代码随想录算法训练营第二十一天 | 77. 组合, 216.组合总和III , 17.电话号码的字母组合
  • mysql group_concat and laravel group_concat使用
  • 短波通信:保底手段
  • mysql 字符串转数组
  • AI智能助手商业系统软件源码(IMYAI智能助手) AI换脸/智能体GPTs应用/AI视频生成/AI绘画/文档分析/GPT-4o模型支持
  • el-dialog设置对话框高度,禁用点击关闭对话框
  • java里的序列化反序列化、HttpMessageConverter、Jackson、消息转化器、对象转化器...都是啥?
  • 【QT 5 QT 6 构建工具qmake-cmake-和-软件编译器MSVCxxxvs MinGWxxx说明】
  • 《UE5_C++多人TPS完整教程》学习笔记32 ——《P33 动画蓝图(Animation Blueprint)》
  • 【docker】docker和镜像仓库
  • Linux驱动开发—编写第一个最简单的驱动模块
  • [PHP内核探索]PHP中的哈希表
  • Codepen 每日精选(2018-3-25)
  • echarts的各种常用效果展示
  • Electron入门介绍
  • export和import的用法总结
  • JavaScript新鲜事·第5期
  • leetcode46 Permutation 排列组合
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • MySQL主从复制读写分离及奇怪的问题
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Python实现BT种子转化为磁力链接【实战】
  • zookeeper系列(七)实战分布式命名服务
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 基于Android乐音识别(2)
  • 每天一个设计模式之命令模式
  • 区块链将重新定义世界
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 三分钟教你同步 Visual Studio Code 设置
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 应用生命周期终极 DevOps 工具包
  • 在Unity中实现一个简单的消息管理器
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #100天计划# 2013年9月29日
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #数学建模# 线性规划问题的Matlab求解
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • ${ }的特别功能
  • $forceUpdate()函数
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (PADS学习)第二章:原理图绘制 第一部分
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (分布式缓存)Redis持久化
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (附源码)ssm高校实验室 毕业设计 800008
  • (一)kafka实战——kafka源码编译启动