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

要验收项目了,要写数据库文档,一大堆表太费劲了,直接生成一个吧,本来想用个别人的轮子,网上看了几个,感觉效果不怎么好,自己动手写一个吧。抽空再把字典表补充进去就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="数据库说明文档";
				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");
相关推荐
阳冬园1 分钟前
mysql数据库 主从同步
数据库·主从同步
Ttang232 分钟前
Tomcat原理(6)——tomcat完整实现
java·tomcat
钱多多_qdd12 分钟前
spring cache源码解析(四)——从@EnableCaching开始来阅读源码
java·spring boot·spring
waicsdn_haha14 分钟前
Java/JDK下载、安装及环境配置超详细教程【Windows10、macOS和Linux图文详解】
java·运维·服务器·开发语言·windows·后端·jdk
Q_192849990625 分钟前
基于Spring Boot的摄影器材租赁回收系统
java·spring boot·后端
Code_流苏27 分钟前
VSCode搭建Java开发环境 2024保姆级安装教程(Java环境搭建+VSCode安装+运行测试+背景图设置)
java·ide·vscode·搭建·java开发环境
Mr.131 小时前
数据库的三范式是什么?
数据库
禁默1 小时前
深入浅出:AWT的基本组件及其应用
java·开发语言·界面编程
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
Code哈哈笑1 小时前
【Java 学习】深度剖析Java多态:从向上转型到向下转型,解锁动态绑定的奥秘,让代码更优雅灵活
java·开发语言·学习