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

java快速生成数据库表文档(HTML、DOC、MD)

在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,关于数据库表结构文档状态:要么没有、要么有、但都是手写、后期运维开发,需要手动进行维护到文档中,很是繁琐,这里推荐一个开源项目:screw
gitee地址:https://gitee.com/leshalv/screw

使用流程:

1.pom依赖

<dependencies><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency><!-- HikariCP连接池 --><dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId><version>3.4.5</version></dependency><!-- screw核心 --><dependency><groupId>cn.smallbun.screw</groupId><artifactId>screw-core</artifactId><version>1.0.5</version></dependency>
</dependencies>

2.具体代码

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;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;import javax.sql.DataSource;
import java.util.ArrayList;public class ScrewGenerator {public static void main(String[] args) {//数据源HikariConfig hikariConfig = new HikariConfig();hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");hikariConfig.setJdbcUrl("jdbc:mysql://127.0.01:3306/test?useSSL=false&serverTimezone=UTC");hikariConfig.setUsername("root");hikariConfig.setPassword("123456");//设置可以获取tables remarks信息hikariConfig.addDataSourceProperty("useInformationSchema", "true");hikariConfig.setMinimumIdle(2);hikariConfig.setMaximumPoolSize(5);DataSource dataSource = new HikariDataSource(hikariConfig);//生成配置EngineConfig engineConfig = EngineConfig.builder()//生成文件路径.fileOutputDir("C:\\Users\\Lenovo\\Desktop\\something")// 打开目录 设置为true执行完代码后会自动打开对应路径文件夹.openOutputDir(true)//生成类型//HTML(".html", "documentation_html", "HTML文件"),//WORD(".doc", "documentation_word", "WORD文件"),//MD(".md", "documentation_md", "Markdown文件");.fileType(EngineFileType.WORD)//自定义文件名称.produceType(EngineTemplateType.freemarker)//自定义文件名称.fileName("自定义文件名称").build();//自定义文件名称ArrayList<String> ignoreTableName = new ArrayList<>();ignoreTableName.add("test_user");ignoreTableName.add("test_group");//忽略表前缀ArrayList<String> ignorePrefix = new ArrayList<>();ignorePrefix.add("test_");//忽略表后缀ArrayList<String> ignoreSuffix = new ArrayList<>();ignoreSuffix.add("_test");ProcessConfig processConfig = ProcessConfig.builder()//忽略表名.ignoreTableName(ignoreTableName)//忽略表前缀.ignoreTablePrefix(ignorePrefix)//忽略表后缀.ignoreTableSuffix(ignoreSuffix).build();//配置Configuration config = Configuration.builder()//版本.version("1.0.0")//描述.description("数据库设计文档生成")//数据源.dataSource(dataSource)//生成配置.engineConfig(engineConfig)//生成配置.produceConfig(processConfig).build();//执行生成new DocumentationExecute(config).execute();System.out.println("生成成功");}
}

3.效果

根据这个配置修改生成的文件类型

//HTML(“.html”, “documentation_html”, “HTML文件”),
//WORD(“.doc”,“documentation_word”, “WORD文件”),
//MD(“.md”, “documentation_md”,“Markdown文件”);

在这里插入图片描述

相关文章:

java快速生成数据库表文档(HTML、DOC、MD)

在企业级开发中、我们经常会有编写数据库表结构文档的时间付出&#xff0c;关于数据库表结构文档状态&#xff1a;要么没有、要么有、但都是手写、后期运维开发&#xff0c;需要手动进行维护到文档中&#xff0c;很是繁琐&#xff0c;这里推荐一个开源项目&#xff1a;screw gi…...

Dojo学习和常用知识

目录 一、Dojo 的基本概念二、Dojo 的组件和模板三、Dojo 的应用场景四、Dojo 的未来发展五、学习 Dojo 的大纲和建议&#xff1a;六、Dojo 代码示例&#xff1a; Dojo 是一个流行的 JavaScript 库&#xff0c;用于开发 Web 应用程序。它提供了许多功能&#xff0c;如 DOM 操作…...

媒体查询详解

引言 媒体查询是 CSS3 的一个新的技术&#xff0c;它使我们可以针对不同的设备&#xff08;或者说&#xff0c;不同的屏幕尺寸和分辨率&#xff09;来应用不同的样式。 媒体查询包含一个媒体类型和至少一个使用宽度、高度、颜色等条件限制的表达式。CSS 用于桌面电脑的屏幕可…...

华为数通HCIP-IGMP(网络组管理协议)

IGMP&#xff08;网络组管理协议&#xff09; 作用&#xff1a;维护、管理最后一跳路由器以及组播接收者之间的关系&#xff1b; 应用&#xff1a;最后一跳路由器以及组播接收者之间&#xff1b; 原理&#xff1a;当组播接收者需要接收某个组别的流量时&#xff0c;会向最后…...

价格管控有哪些有效的方法

品牌在面对线上店铺的低价、窜货时&#xff0c;需要及时进行干预治理&#xff0c;否则低价效应会蔓延&#xff0c;会有越来越多的店铺跟价&#xff0c;导致渠道更加混乱&#xff0c;但是管控价格也非一时之事&#xff0c;需要品牌按流程治理。 力维网络有多年价格管控经验&…...

【Docker】Docker相关基础命令

目录 一、Docker服务相关命令 1、启动docker服务 2、停止docker服务 3、重启docker服务 4、查看docker服务状态 5、开机自启动docker服务 二、Images镜像相关命令 1、查看镜像 2、拉取镜像 3、搜索镜像 4、删除镜像 三、Container容器相关命令 1、创建容器 2、查…...

掌握Python的X篇_16_list的切片、len和in操作

接上篇掌握Python的X篇_15_list容器的基本使用&#xff0c;本篇进行进一步的介绍。 文章目录 1. list的索引下标可以是负数2. 切片&#xff08;slice&#xff09;2.1 切片基础知识2.2 如何“取到尽头”2.3 按照步长取元素2.4 逆序取值 3. len函数获取lis的元素个数4. in操作符…...

给定长度值length,把列表切分成每段长度为length的N段列表,Kotlin

给定长度值length&#xff0c;把列表切分成每段长度为length的N段列表&#xff0c;Kotlin import kotlin.random.Randomfun main(args: Array<String>) {var source mutableListOf<String>()val end Random.nextInt(30) 1for (i in 0 until end) {source.add(i.…...

leetcode每日一题Day2——344. 反转字符串

✨博主&#xff1a;命运之光 &#x1f984;专栏&#xff1a;算法修炼之练气篇&#xff08;C\C版&#xff09; &#x1f353;专栏&#xff1a;算法修炼之筑基篇&#xff08;C\C版&#xff09; &#x1f433;专栏&#xff1a;算法修炼之练气篇&#xff08;Python版&#xff09; …...

ISP记1

噪声分类 空间区域 分布模型分类&#xff1a;Gaussian噪声、瑞利噪声、泊松噪声、乘性噪声、脉冲噪声、均匀分布噪声 频域谱波形分类&#xff1a;均匀分布噪声、白噪声&#xff08;噪声的功率谱为参数&#xff0c;且与图像线性无关&#xff09;1/f噪声、a f 2 f^{2} f2噪声&a…...

无线蓝牙耳机有什么值得耳机买的?几款值得买的口碑品牌盘点

蓝牙耳机是一种无线耳机&#xff0c;其通过蓝牙技术与其他设备进行连接&#xff0c;例如手机、电脑、平板电脑等。蓝牙耳机使得用户可以在不受线缆限制的情况下享受音频体验&#xff0c;而且还可以方便地进行通话&#xff0c;目前市场上有许多不同种类和品牌的蓝牙耳机&#xf…...

异步检索在 Elasticsearch 中的理论与实践

异步检索在 Elasticsearch 中的理论与实践 https://www.elastic.co/guide/en/elasticsearch/reference/8.1/async-search.html#submit-async-search 引言 Elasticsearch 是一种强大的分布式搜索和分析引擎&#xff0c;它能够快速地存储、搜索和分析大量数据。在处理大规模数据时…...

了解Unity编辑器之组件篇Physics 2D(十二)

一、Area Effector 2D区域施加力&#xff09;&#xff1a;用于控制区域施加力的行为 Use Collider Mask&#xff08;使用碰撞器遮罩&#xff09;&#xff1a;启用后&#xff0c;区域施加力仅会作用于特定的碰撞器。可以使用Collider Mask属性选择要作用的碰撞器。 Collider Ma…...

[Pytorch]手写数字识别——真·手写!

Github网址&#xff1a;https://github.com/diaoquesang/pytorchTutorials/tree/main 本教程创建于2023/7/31&#xff0c;几乎所有代码都有对应的注释&#xff0c;帮助初学者理解dataset、dataloader、transform的封装&#xff0c;初步体验调参的过程&#xff0c;初步掌握openc…...

android studio 找不到符号类 Canvas 或者 错误: 程序包java.awt不存在

android studio开发提示 解决办法是&#xff1a; import android.graphics.Canvas; import android.graphics.Color; 而不是 //import java.awt.Canvas; //import java.awt.Color;...

AWS——02篇(AWS之服务存储EFS在Amazon EC2上的挂载——针对EC2进行托管文件存储)

AWS——02篇&#xff08;AWS之服务存储EFS在Amazon EC2上的挂载——针对EC2进行托管文件存储&#xff09; 1. 前言2. 关于Amazon EFS2.1 Amazon EFS全称2.2 什么是Amazon EFS2.3 优点和功能2.4 参考官网 3. 创建文件系统3.1 创建 EC2 实例3.2 创建文件系统 4. 在Linux实例上挂载…...

FFmpeg 打包mediacodec 编码帧 MPEGTS

在Android平台上合成视频一般使用MediaCodec进行硬编码&#xff0c;使用MediaMuxer进行封装&#xff0c;但是因为MediaMuxer支持格式有限&#xff0c;一般会采用ffmpeg封装&#xff0c;比如监控一般使用mpeg2ts格式而非MP4,这是因为两者对帧时pts等信息封装差异导致应用场景不同…...

软件测试如何推进项目进度?

在软件研发中&#xff0c;有一种思想叫TDD&#xff0c;即测试驱动开发&#xff0c;TDD是敏捷方法中的一项核心实践&#xff0c;其原理是在开发功能代码之前&#xff0c;先编写单元测试用例代码&#xff0c;对要编写的函数或类明确测试方法后&#xff0c;再进行设计与编码。 本…...

首次尝试鸿蒙开发!

今天是我第一次尝试鸿蒙开发&#xff0c;是因为身边的学长有搞这个的&#xff0c;而我也觉得我也该拓宽一下技术栈&#xff01; 首先配置环境&#xff0c;唉~真的是非常心累&#xff0c;下载一个DevEco Studio 3.0.0.993&#xff0c;然后配置环境变量这些操作不用多说&#xff…...

前端面试题-react

1 React 中 keys 的作⽤是什么&#xff1f; Keys 是 React ⽤于追踪哪些列表中元素被修改、被添加或者被移除的辅助标识在开发过程中&#xff0c;我们需要保证某个元素的 key 在其同级元素中具有唯⼀性。在 React Diff 算法中 React 会借助元素的 Key 值来判断该元素是新近创建…...

科学计算的质量守卫:AlphaFold自动化测试实践指南

科学计算的质量守卫&#xff1a;AlphaFold自动化测试实践指南 【免费下载链接】alphafold Open source code for AlphaFold. 项目地址: https://gitcode.com/GitHub_Trending/al/alphafold 技术痛点三连问&#xff1a;你的科学计算项目是否也面临这些困境&#xff1f; …...

【ComfyUI】Qwen-Image-Edit-F2P 实战:基于Transformer架构的人脸图像风格迁移

ComfyUI Qwen-Image-Edit-F2P 实战&#xff1a;基于Transformer架构的人脸图像风格迁移 最近在折腾AI图像生成&#xff0c;发现了一个挺有意思的模型——Qwen-Image-Edit-F2P。它不像那些通用的文生图模型&#xff0c;而是专门针对图像编辑&#xff0c;尤其是在人脸风格迁移上…...

Changedetection.io网页监控工具:免费开源网站变更检测终极指南

Changedetection.io网页监控工具&#xff1a;免费开源网站变更检测终极指南 【免费下载链接】changedetection.io The best and simplest free open source website change detection, website watcher, restock monitor and notification service. Restock Monitor, change de…...

iOS日志与事件深度解析工具:iLEAPP技术架构与实战指南

iOS日志与事件深度解析工具&#xff1a;iLEAPP技术架构与实战指南 【免费下载链接】iLEAPP iOS Logs, Events, And Plist Parser 项目地址: https://gitcode.com/gh_mirrors/il/iLEAPP 在移动设备取证和数据分析领域&#xff0c;iOS系统的复杂性一直是技术人员的挑战。面…...

数据库课程设计实战:构建文本分割结果的管理系统

数据库课程设计实战&#xff1a;构建文本分割结果的管理系统 每次做数据库课程设计&#xff0c;你是不是也头疼&#xff1f;选题要么太简单&#xff0c;像学生信息管理&#xff0c;做出来感觉没深度&#xff1b;要么太复杂&#xff0c;比如电商系统&#xff0c;光表关系就画晕…...

OpenClaw多模型切换:GLM-4.7-Flash与Qwen混合使用指南

OpenClaw多模型切换&#xff1a;GLM-4.7-Flash与Qwen混合使用指南 1. 为什么需要多模型切换&#xff1f; 去年我在尝试用OpenClaw自动化处理技术文档时&#xff0c;发现单一模型很难满足所有需求。有些任务需要快速响应&#xff08;如简单问答&#xff09;&#xff0c;有些则…...

手把手教你部署GLM-4v-9B:9B参数多模态模型,单卡就能跑

手把手教你部署GLM-4v-9B&#xff1a;9B参数多模态模型&#xff0c;单卡就能跑 1. GLM-4v-9B模型简介 GLM-4v-9B是智谱AI于2024年开源的多模态大模型&#xff0c;具有以下核心特点&#xff1a; 参数规模&#xff1a;90亿参数&#xff0c;单张24GB显存的显卡即可运行多模态能…...

Gazebo室内环境建模实战:从零构建到launch文件一键启动

1. Gazebo室内建模入门指南 第一次接触Gazebo室内建模时&#xff0c;我被它强大的功能震撼到了。作为一个机器人仿真平台&#xff0c;Gazebo不仅能模拟各种物理环境&#xff0c;还能让我们快速搭建测试场景。想象一下&#xff0c;你正在开发一个扫地机器人或者服务机器人&#…...

 轻松构建可信的智能代理:AgentScope框架介绍

什么是 AgentScope&#xff1f; AgentScope 是一个生产就绪的、易于使用的代理框架&#xff0c;它提供了与不断增强的模型能力相兼容的基本抽象&#xff0c;并且内置支持微调功能。我们为越来越具代理性的语言模型&#xff08;LLMs&#xff09;设计这种框架&#xff0c;方法是…...

避坑指南:用Python调用腾讯混元大模型API时,你可能会遇到的5个常见错误及解决方法

避坑指南&#xff1a;用Python调用腾讯混元大模型API时&#xff0c;你可能会遇到的5个常见错误及解决方法 调试API接口就像在迷宫中寻找出口——每个转角都可能遇到意想不到的障碍。作为使用腾讯混元大模型的开发者&#xff0c;我在过去三个月里处理了超过200次API调用异常&…...