mysql数据库自动生成数据库开发设计文档

article/2025/9/12 15:47:14

1、输出表结果,表结构可自己通过代码调整,简单但是有时候很实用,可以节省大量的时间,主要思路:

a 在java代码中,通过数据库查询语句获取所有表名和表名备注信息。

b 通过表名获取某张表的所有字段说明。

c 整理查询出来的结果,写入到word文档中。

输出表结果

2、主要数据库查询语句说明

a、查询数据库所有表名和表名说明,查询语句如下

select table_name,table_comment from information_schema.tables where table_schema = 'xmsa_trace'

b、查询数据库某张表的所有字段说明,查询语句如下

SHOW FULL FIELDS FROM xmsa_trace.area_classify;

3、java代码中,通过sql语句查询,查询上述两个结果,不同的框架查询方法不同,以下的是springmvc+mybatis框架的代码,详细代码见文章结尾。

4、将查询出来的结果整理,写入word,并生成表格

 

 

 

5、写 入word表格的详细代码,需导入itext-2.1.7.jar  itext-asian-5.2.0.jar  itext-rtf-2.1.7.jar 三个架包

   

package com.xmbestone.tlb.manage.util;import java.awt.Color;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.List;import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.lowagie.text.Cell;import com.lowagie.text.Document;import com.lowagie.text.DocumentException;import com.lowagie.text.Font;import com.lowagie.text.PageSize;import com.lowagie.text.Paragraph;import com.lowagie.text.Table;import com.lowagie.text.rtf.RtfWriter2;import com.xmbestone.tlb.manage.service.business.IBusinessSupplierService;/** * 创建word文档 步骤: 1,建立文档 2,创建一个书写器 3,打开文档 4,向文档中写入数据 5,关闭文档 */@Service("dateToWordUtil")public class DateToWordUtil {@Autowiredprivate IBusinessSupplierService businessSupplierService;/** * @param args * @throws Exception */public void toWord(List> listAll) throws Exception {// 创建word文档,并设置纸张的大小Document document = new Document(PageSize.A4);try {// 创建word文档RtfWriter2.getInstance(document, new FileOutputStream("E:/word5.doc"));document.open();// 设置文档标题Paragraph ph = new Paragraph();Font f = new Font();Paragraph p = new Paragraph("数据库表设计文档", new Font(Font.NORMAL, 24,Font.BOLDITALIC, new Color(0, 0, 0)));p.setAlignment(1);document.add(p);ph.setFont(f);/* * 创建表格 通过查询出来的表遍历 */for (int i = 0; i < listAll.size(); i++) {// 表名String table_name = (String) listAll.get(i).get("table_name");// 表说明String table_comment = (String) listAll.get(i).get("table_comment");String sql = "SHOW FULL FIELDS FROM xmsa_trace." + table_name+ " ";//获取某张表的所有字段说明List> list = businessSupplierService.listMap(sql);//构建表说明String all = "" + (i + 1) + " 表名:" + table_name + " "+ table_comment + "";//创建有6列的表格Table table = new Table(6);document.add(new Paragraph(""));table.setBorderWidth(1);// table.setBorderColor(Color.BLACK);table.setPadding(0);table.setSpacing(0);/** 添加表头的元素,并设置表头背景的颜色*/Color chade = new Color(176, 196, 222);Cell cell = new Cell("序号");// 单元格cell.setBackgroundColor(chade);cell.setHeader(true);// cell.setColspan(3);//设置表格为三列// cell.setRowspan(3);//设置表格为三行table.addCell(cell);cell = new Cell("字段名");// 单元格cell.setBackgroundColor(chade);table.addCell(cell);cell = new Cell("类型");// 单元格cell.setBackgroundColor(chade);table.addCell(cell);cell = new Cell("是否为空");// 单元格cell.setBackgroundColor(chade);table.addCell(cell);cell = new Cell("主键");// 单元格cell.setBackgroundColor(chade);table.addCell(cell);cell = new Cell("字段说明");// 单元格cell.setBackgroundColor(chade);table.addCell(cell);table.endHeaders();// 表头结束// 表格的主体,for (int k = 0; k < list.size(); k++) {//获取某表每个字段的详细说明String Field = (String) list.get(k).get("Field");String Type = (String) list.get(k).get("Type");String Null = (String) list.get(k).get("Null");String Key = (String) list.get(k).get("Key");String Comment = (String) list.get(k).get("Comment");table.addCell((k + 1) + "");table.addCell(Field);table.addCell(Type);table.addCell(Null);table.addCell(Key);table.addCell(Comment);}Paragraph pheae = new Paragraph(all);//写入表说明document.add(pheae);//生成表格document.add(table);}document.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (DocumentException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}

6、java代码,将数据写入到word文档中并生成表格的样例代码。

package com.xmbestone.tlb.manage.util;import java.awt.Color;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import com.lowagie.text.Cell;import com.lowagie.text.Document;import com.lowagie.text.DocumentException;import com.lowagie.text.Font;import com.lowagie.text.PageSize;import com.lowagie.text.Paragraph;import com.lowagie.text.Table;import com.lowagie.text.pdf.BaseFont;import com.lowagie.text.rtf.RtfWriter2;/*** 创建word文档 步骤:* 1,建立文档* 2,创建一个书写器* 3,打开文档* 4,向文档中写入数据* 5,关闭文档*/public class WordDemo {public WordDemo() {}/*** @param args*/public static void main(String[] args) {// 创建word文档,并设置纸张的大小Document document = new Document(PageSize.A4);try {RtfWriter2.getInstance(document,new FileOutputStream("E:/word5.doc"));document.open();//设置合同头Paragraph ph = new Paragraph();Font f  = new Font();Paragraph p = new Paragraph("数据库表设计文档", new Font(Font.NORMAL, 24, Font.BOLDITALIC, new Color(0, 0, 0)) );p.setAlignment(1);document.add(p);ph.setFont(f);// 设置中文字体// BaseFont bfFont =    BaseFont.createFont("STSongStd-Light",  "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);// Font chinaFont = new Font();/** 创建有三列的表格*/for(int i=0;i<5;i++){Table table = new Table(6);document.add(new Paragraph(""));table.setBorderWidth(1);// table.setBorderColor(Color.BLACK);table.setPadding(0);table.setSpacing(0);/** 添加表头的元素*/Color chade = new Color(176, 196, 222);Cell cell = new Cell("序号");//单元格cell.setBackgroundColor(chade);cell.setHeader(true);//        cell.setColspan(1);//设置表格为三列//        cell.setRowspan(1);//设置表格为三行table.addCell(cell);cell = new Cell("字段名");//单元格cell.setBackgroundColor(chade);table.addCell(cell);cell = new Cell("类型");//单元格cell.setBackgroundColor(chade);table.addCell(cell);cell = new Cell("是否为空");//单元格cell.setBackgroundColor(chade);table.addCell(cell);cell = new Cell("主键");//单元格cell.setBackgroundColor(chade);table.addCell(cell);cell = new Cell("字段说明");//单元格cell.setBackgroundColor(chade);table.addCell(cell);table.endHeaders();// 表头结束// 表格的主体table.addCell("1,1");table.addCell("1,2");table.addCell("1,3");table.addCell("1,4");table.addCell("1,5");table.addCell("1,6");table.addCell("你好啊");table.addCell("你好啊");table.addCell("你好啊");table.addCell("你好啊");table.addCell("你好啊");table.addCell("你好啊");document.add(new Paragraph("表一"));document.add(table);}document.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (DocumentException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}

 


http://chatgpt.dhexx.cn/article/KxNB0KKJ.shtml

相关文章

数据库设计文档编写模板

在编写数据库设计说明文档时&#xff0c;需要对每一张数据表做设计说明&#xff0c;其中最主要、也是最繁琐的部分就是表字段描述部分&#xff0c;那么采取什么样的模板格式&#xff0c;即能完整表达表字段设计用意&#xff0c;又能快速采集数据库设计信息呢&#xff1f;建议如…

使用Navicat将表设计导出数据库设计文档

我们在写数据库设计文档的时候&#xff0c;会需要对数据库表进行设计的编写&#xff0c;手动写的话会很费时间费精力。 1、首先在Navicat中点击查询&#xff0c;然后输入以下SQL语句&#xff1a; SELECT TABLE_NAME 表名, COLUMN_NAME 字段, COLUMN_COMMENT 字段名称, COLUMN…

生成 数据库设计文档

最近要写一个数据库设计文档 数据设计文档中数据库结构设计这个模块是需要把数据库的所有字段&#xff0c;标识&#xff0c;注释等的设计写出来&#xff0c;如果手写会疯的&#xff0c;现在自己来写个生成工具生成&#xff0c;只要连接数据库就ok。 一、在用idea创建maven项目…

【MySQL】数据库设计文档生成

MySQL数据库设计文档生成 文章目录 MySQL数据库设计文档生成前言0、全局浏览1、引入依赖2、启动类3、配置文件4、实现类5、成品展示 前言 记录MySQL数据库设计文档生成&#xff0c;旨在方便自己&#xff0c;也能方便他人。 Gitee源码&#xff1a;https://gitee.com/liuyimin43…

如何生成数据库设计文档

如何生成数据库设计文档 screw什么是screw特点支持生成的文档类型目前支持的数据库类型支持的模板类型 如何使用&#xff1f;遇到的问题 screw 官网地址&#xff1a; https://gitee.com/leshalv/screw/ 什么是screw screw是简洁好用的数据库表结构文档生成工具。 特点 简洁…

数据库设计说明书的编写

G.1 引言 G.1.1 编写目的 数据库的表结构设计是整个项目开发中一个非常重要的环节,一个良好的数据库设计&#xff0c;可以提高开发效率&#xff0c;方便系统维护&#xff0c;并且为以后项目功能的扩展留下余地。我们通过书写这份文档说明&#xff0c;从各方面进行对校园地图的…

PowerDesigner生成数据库设计文档

1.说明 使用PowerDesigner设计数据库表&#xff0c; 基于PowerDesigner设计数据库表, 生成数据库对应的表设计文档&#xff0c; PowerDesigner支持生成HTML、RTF和本地格式的文档&#xff0c; 下面演示生成RTF格式的文档&#xff0c; 然后把RTF文档保存为常见的Word文档格式。 …

数据库设计文档自动生成

1、拉取代码 该项目上使用了jdk17版本&#xff0c;需要maven环境。如果都有&#xff0c;通过git进行下载代码 #git下载代码命令 git clone https://gitee.com/giteeLinht/db-doc.git2、初始化项目并运行 1、打开idea&#xff0c;导入项目直接运行com.cn.db.dbdoc.DbDocApplic…

Java自动生成数据库设计文档(Word)

一、前言 在日常的开发工作中&#xff0c;偶尔会遇到项目收尾需要提供数据库设计文档的情况。对这个文档的编写目前应该已经基本没有问题了&#xff0c;如果你还不知道如何编写该文档&#xff0c;可以参考如下文章。 https://blog.csdn.net/qq_41057885/article/details/114436…

【资源分享】基于Spark的机器学习-智能客户系统项目实战视频教程

承诺&#xff1a;【不加密&#xff0c;不收费】 一、 课程介绍 1、项目介绍以及在本课程中能学到什么东西、如何应用到实际项目中 2、scala和IDE的安装以及使用以及maven插件的安装 3、Centos环境准备&#xff08;java环境、hosts配置、防火墙关闭&#xff09; 4、scala基…

2-1、特征:特征选择、特征预处理(缩放)、特征抽取、特征构造

目录 特征重要性一、特征选择1、Filter方法&#xff08;过滤式&#xff09;1-1 剔除缺失值过多的变量1-2 方差变化1-3 相关系数&#xff08;Correlation coefficient scores&#xff09;1-4卡方检验&#xff08;Chi-squared Test&#xff09;1-5 信息增益&#xff08;Informati…

Windows下使用Word2vec继续词向量训练

word2vec是Google在2013年提出的一款开源工具&#xff0c;其是一个Deep Learning(深度学习)模型&#xff08;实际上该模型层次较浅&#xff0c;严格上还不能算是深层模型&#xff0c;如果word2vec上层再套一层与具体应用相关的输出层&#xff0c;如Softmax&#xff0c;便更像是…

python spark MLlib

window系统 1. anaconda 或python spark环境变量 2. 配置spark home D:\Develop\spark-1.6.0-bin-hadoop2.6\spark-1.6.0-bin-hadoop2.63. C:\Users\Administrator>pip install py4jpython for java cpython c 与java交互就是通过py4jpip uninstall py4j4. 安装pyspark &a…

数据中台建设方案-基于大数据平台

数据中台建设方案 -基于大数据平台- 1数据中台建设方案 1.1 总体建设方案 1.2大数据集成平台 1.3大数据计算平台 1.3.1数据计算层建设 计算层技术含量最高,最为活跃,发展也最为迅速。计算层主要实现各类数据的加工、处理和计算,为上层应用提供良好和充分的数据支持。大数据基…

2021-03-04 大数据课程笔记 day43

R星校长 机器学习03【机器学习】 主要内容 数字聚类案例TF-IDF算法微博营销案例逻辑回归算法音乐分类案例 学习目标 第一节 数字聚类案例 1. K-means 找中心点和数据点分类例子 import numpy as np #将每行数据放入一个数组内列表&#xff0c;返回一个二维列表 def loa…

文本挖掘之文本聚类(MapReduce)

刘 勇 Email&#xff1a;lyssymsina.com 简介 针对大数量的文本数据&#xff0c;采用单线程处理时&#xff0c;一方面消耗较长处理时间&#xff0c;另一方面对大量数据的I/O操作也会消耗较长处理时间&#xff0c;同时对内存空间的消耗也是很大&#xff0c;因此&#xff0c;本文…

solr 自聚类实现

参考官网&#xff1a;https://lucene.apache.org/solr/guide/6_6/result-clustering.html 最近用到solr自聚类的&#xff0c;先简单介绍如下&#xff1a; 1、配置文件 主要配置文件必须配置如下内容&#xff1a; <lib dir"${solr.install.dir:../../..}/contrib/cluste…

《学术小白的学习之路 06》自然语言处理之 数据预处理、Jieba分词和文本聚类

本文主要是学习参考杨秀璋老师的博客,笔记总结。 原文链接 文章目录 书山有路勤为径&#xff0c;学海无涯苦作舟&#xff08;行行代码要手敲&#xff09;零、吃水不忘挖井人一、数据预处理&#xff08;分词-清洗-特征提取-权重&#xff09;二、中文分词2.1 中文分词技术2.2 Jie…

kmeans实现文本聚类

需求 拿到的需求是输入n个文本,对文本进行聚类,由于这些输入不能通过历史数据进行训练,所以这个主要就是用无监督学习来解决。 kmeans 谈到聚类就会想到kmeans,它的核心思想是给定的K值和K个初始质心将样本中每个点都分到距离最近的类簇中,当所有点分配完后根据每个类簇的…

PS放大图片而不模糊的操作方法

1、使用ps打开图片&#xff08;原始图片200*200&#xff09;&#xff0c;正常情况下ctrl “” 放大图片&#xff0c;图片会变模糊&#xff0c;如下&#xff1a; 原始图片&#xff1a; 放大之后&#xff1a; 明显模糊了。 2、右键图层&#xff0c;选择复制图层…