DM8(达梦数据库)基于建库SQL生成ER图,基于ER图生成数据库文档

news/2024/11/29 7:39:03/

今天项目经理让我导出DM8 数据库说明文档,我立刻想到了数据库文档生成工具(screw-钉子),我立刻添加相关maven 依赖,编写junit 单元代码。但是执行的结果让我很沮丧。

相关依赖和Junit 单元代码

        <!-- 自动生成数据库文档--><dependency><groupId>cn.smallbun.screw</groupId><artifactId>screw-core</artifactId><version>1.0.5</version></dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.30</version></dependency><dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId><version>3.4.5</version></dependency>
package com.zzg;import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;import javax.sql.DataSource;import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;import cn.smallbun.screw.core.Configuration;
import cn.smallbun.screw.core.engine.EngineConfig;
import cn.smallbun.screw.core.engine.EngineFileType;
import cn.smallbun.screw.core.engine.EngineTemplateType;
import cn.smallbun.screw.core.execute.DocumentationExecute;
import cn.smallbun.screw.core.process.ProcessConfig;@SpringBootTest
public class ScrewApplicationTests {@Testpublic void contextLoads() throws SQLException {// 数据源HikariConfig hikariConfig = new HikariConfig();hikariConfig.setDriverClassName("dm.jdbc.driver.DmDriver");hikariConfig.setJdbcUrl("jdbc:dm://192.168.0.1:5256/SYSDBA");hikariConfig.setUsername("SYSDBA");hikariConfig.setPassword("SYSDBA");//设置能够获取tables remarks信息DataSource dataSource = new HikariDataSource(hikariConfig);// 生成文件配置EngineConfig engineConfig = EngineConfig.builder()// 生成文件路径。与官方的例子不同,我是win10系统,就先放E盘根目录吧。.fileOutputDir("E://")// 打开目录.openOutputDir(false)// 文件类型.fileType(EngineFileType.HTML)// 生成模板实现.produceType(EngineTemplateType.freemarker).build();// 生成文档配置(包含以下自定义版本号、描述等配置连接),文档名称拼接:数据库名_描述_版本.扩展名Configuration config = Configuration.builder().version("1.0.3") // 版本.description("统数据库设计文档") // 描述.dataSource(dataSource) // 数据源.engineConfig(engineConfig) // 模板引擎配置.produceConfig(getProcessConfig()) // 加载配置:想要生成的表、想要忽略的表.build();// 执行生成new DocumentationExecute(config).execute();}/*** 配置想要生成的表+ 配置想要忽略的表** @return 生成表配置*/public static ProcessConfig getProcessConfig() {// 忽略表名List<String> ignoreTableName = Arrays.asList();// 忽略表前缀,如忽略a开头的数据库表List<String> ignorePrefix = Arrays.asList();// 忽略表后缀List<String> ignoreSuffix = Arrays.asList();return ProcessConfig.builder()//根据名称指定表生成.designatedTableName(new ArrayList<>())//根据表前缀生成.designatedTablePrefix(new ArrayList<>())//根据表后缀生成.designatedTableSuffix(new ArrayList<>())//忽略表名.ignoreTableName(ignoreTableName)//忽略表前缀.ignoreTablePrefix(ignorePrefix)//忽略表后缀.ignoreTableSuffix(ignoreSuffix).build();}}

Junit 单元测试结果:

 结论:钉子不支持DM8 数据库文档生成。

曲线办法:基于DM8数据库SQL脚本生成PowerDesigner ER 图,再通过文档模板将ER 图导出数据库说明文档。

达梦数据库生成ER图步骤:

1、选择需要生成er图的数据库右击,进行模式对象导出,根据需要选择库,然后导出sql文件到本地,如下所示:

PowerDesigner ER图步骤:

1、 打开powerdesigner,选择 File --> ReverseEngineer --> 选择 Database。

2、 选择数据库类型,选择oracle11g。

 

3、 然后选择使用脚本文件,选择以及导出的脚本。

4、 点击完成,就会生成对应的er模型图

 

 

 使用 PowerDesigner 生成数据库设计文档

1、PowerDesigner 文档模板下载:

链接:https://pan.baidu.com/s/16cVdfIWSW78YqOPcDJnNsw 
提取码:1234 

 2.点击Report-->Reports templates  进入Report模版页面

 

3. 选择模板

点击最右边的 文件夹图标,进入选择页面,找到我们下载的模版文件(我的在左面,数据看文档文件夹,到文件夹那一层就好),选好以后点击'确定',然后再点击'close'关闭

 

 

4.点击Report-->Generate Reports 进入导出页面

5.选择生成 RTF, 设置为简体中文. 

自此完成,DM8 数据库文档生成。 


http://www.ppmy.cn/news/563797.html

相关文章

2020第十一届蓝桥杯C/C++ 省赛A组 题解

A 624 遍历每个数&#xff0c;取余判断每一位 #include<iostream> using namespace std;int main() {int cnt0;for(int i1;i<2020;i){int tmpi;while(tmp){if(tmp%102)cnt;tmp/10;}}cout<<cnt;return 0; }B 2481215 两个循环&#xff0c;判断最大公约数是否为1…

关于new的用法: classA p = *new A;

一&#xff1a;在学习binder 的时候看到如下一段关于 class A & p *new A &#xff1b; // frameworks/native/libs/binder/static.cpp Mutex& gProcessMutex *new Mutex; sp<ProcessState> gProcess; new其实就是告诉计算机开辟一段新的空间&#xff0c;但…

Can not create a Path from an empty string解决

完整报错如下: java.lang.IllegalArgumentException: Can not create a Path from an empty stringat org.apache.hadoop.fs.Path.checkPathArg(Path.java:126)at org.apache.hadoop.fs.Path.<init>(Path.java:134)at org.apache.hadoop.fs.Path.<init>(Path.java:…

C#操作字符串方法总结lt;转gt;

1 staticvoid Main(string[] args)2 {3 string s "";4 //&#xff08;1&#xff09;字符访问&#xff08;下标访问s[i]&#xff09;5 s "ABCD";6 Console.WriteLine(s[0]); // 输出"A";7 …

linux下移植电容屏驱动gt9xx 笔记

# evtest /dev/event0 或者 # hexdump /dev/event0// 分析&#xff1a; \drivers\i2c\busses\I2c-digicolor.c static struct platform_driver i2c_dc_driver {.probe i2c_dc_probe,.remove __exit_p(i2c_dc_remove),.driver {.name "i2c-digicolor",.owne…

mtk6582平台GT9157触摸屏驱动移植

一.GT9157触摸屏移植 1.在mediatek/config/sanstar82_cwet_kk/ProjectConfig.mk中 CUSTOM_KERNEL_TOUCHPANELGT9XX (将GT9XX驱动加载到内核中) 2.在mediatek/custom/sanstar82_cwet_kk/kernel/touchpanel/GT9XX/tpd_custom_gt9xx.h中修改固件 (1)在有厂商固件的情况下 将…

前端vue经典面试题78道(重点详细简洁)

目录 1.自我介绍 2.vue面试题 1.v-show和v-if区别的区别&#xff1a; 2.为何v-for要用key 3.描述vue组件声明周期mm 单组件声明周期图 ​父子组件生命周期图 4.vue组件如何通信 5.描述组件渲染和更新的过程 1、vue 组件初次渲染过程 2、vue 组件更新过程 6.双向数据…

MATLAB2020a报错:函数或变量 ‘svmtrain‘ 无法识别。

版权声明&#xff1a;转载请注明作者&#xff08;独孤尚良dugushangliang&#xff09;出处&#xff1a;https://blog.csdn.net/dugushangliang/article/details/108594259 遇到问题&#xff0c;上网搜索&#xff0c;折腾许久&#xff0c;悬而未决。 遇到这个错误的原因是&…