java一键生成数据库说明文档html格式

devtools/2024/11/14 14:51:30/

要验收项目了,要写html" title=数据库>数据库文档,一大堆表太费劲了,直接生成一个吧,本来想用个别人的轮子,网上看了几个,感觉效果不怎么好,自己动手写一个吧。抽空再把字典表补充进去就OK了
先看效果:
目录快速导航
在这里插入图片描述
生成效果
在这里插入图片描述

关键代码

 try {String prefixTables = "sys_monitor_db_handle.selectDbTabUsedInfo";String prefixStructure = "sys_monitor_db_handle.selectDbClumInfo";String dbname="dbname";// 获取所有表名Map<String, Object> paramTables = new HashMap<>();paramTables.put("tableen", dbname);String sqlTables = SqlManage.getInstance().getSqlByid(paramTables, prefixTables);List<Map<String, Object>> tablesList = BaseDao.queryList(sqlTables);// 生成HTML文档StringBuilder htmlBuilder = new StringBuilder();String name="html" title=数据库>数据库说明文档";String level="2.0";String auth="wheart.cn";String date=ToolDateTime.getYYYYmmdd();generateHtmlHeader(htmlBuilder,name,level,auth,date);StringBuilder navBuilder = new StringBuilder();navBuilder.append("<nav><h2 id='mulu'>目录</h2><ul>\n");for (Map<String, Object> tableInfo : tablesList) {String tableName = (String) tableInfo.get("tableen");String tableNamecn = tableInfo.get("tabcn")+"";generateHtmlnav(navBuilder,tableName,tableNamecn);Map<String, Object> paramStructure = new HashMap<>();paramStructure.put("tableen", tableName);paramStructure.put("dbname", dbname);String sqlStructure = SqlManage.getInstance().getSqlByid(paramStructure, prefixStructure);List<Map<String, Object>> columnsList = BaseDao.queryList(sqlStructure);generateHtmlTable(htmlBuilder, tableName, tableNamecn, columnsList);}navBuilder.append("</ul></nav>\n"); // 结束导航列表和导航部分String conDivStart = "<div class=\"con\">";int conDivIndexStart = htmlBuilder.indexOf(conDivStart);htmlBuilder.insert(conDivIndexStart + conDivStart.length(), navBuilder.toString());generateHtmlFooter(htmlBuilder);writeHtmlToFile(htmlBuilder.toString(), name+"_"+auth+"_"+level+"_"+date+".html");

http://www.ppmy.cn/devtools/100761.html

相关文章

【R语言实战】——多模型预测及评价

&#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#xff0c;参与研究经费10w、40w级横向 文…

Android笔试面试题AI答之Kotlin补充考点

博客中虽然包含了大量关于Kotlin的面试题&#xff0c;但并未涵盖Kotlin所有可能的面试考点。以下是一些博客中未明确提到的面试考点&#xff1a; Kotlin与Java的互操作性&#xff1a; Kotlin如何与Java代码互操作&#xff1f;Kotlin如何调用Java方法&#xff0c;以及Java如何调…

mysql练习5

数据准备 创建两张表:部门(dept)和员工(emp)&#xff0c;并插入数据&#xff0c;代码如下 create table dept( dept id int primary key auto increment comment部门编号, dept_name char(20)comment部门名称 ); insert into d…

Cyberchef实用功能之-json解析美化和转换

本文将介绍如何使用cyberchef的json操作功能&#xff0c;根据自己的需求处理常见的json问题。 在网络安全日常的运营&#xff0c;护网行动&#xff0c;重保活动的过程中&#xff0c;经常需要查看多种平台的json格式日志&#xff0c;如下&#xff1a; 以json格式存储的防火墙日…

ruoyi-app前端在缓存中添加nick_name和user_id属性值

需求 ruoyi-app原生自带只有avatar、name、roles、permissions&#xff1b;在显示中&#xff0c;我们大多数需要nick_name、user_id&#xff1b;当然获取方式也可以通过name去调用接口查询&#xff0c;但我想偷个懒。 代码 代码已经调好的&#xff0c;复制即用&#xff1b;至…

调用ragflow api实现俩个模型根据知识库的内容来进行对话 简易版

调用ragflow接口实现俩个模型对话 简易版 用到的库流程代码参考文献 用到的库 requests 调用api 发送请求streamlit 做一个简单的页面json 解析接口返回的内容 流程 根据ragflow官方api文档中的内容&#xff0c;我们需要先将api键需要放到请求头中&#xff0c;然后再调用new…

量子计算与未来的渗透技术(壹)

第一篇&#xff1a;量子计算对渗透测试的潜在影响 1. 量子计算概述 量子计算的基本原理&#xff1a;介绍量子比特&#xff08;qubits&#xff09;、叠加态、纠缠态等量子计算的核心概念。量子计算对传统计算的优势&#xff1a;解释量子计算在处理复杂计算任务上的潜在优势&am…

ASP.NET Core 入门教程一 创建最小 API

构建最小 API&#xff0c;以创建具有最小依赖项的 HTTP API。 它们非常适合需要在 ASP.NET Core 中仅包括最少文件、功能和依赖项的微服务和应用。 本教程介绍使用 ASP.NET Core 生成最小 API 的基础知识。 启动 Visual Studio 2022 并选择“创建新项目”。 在“创建新项目”…