不到一百行代码实现一个Mysql数据库说明文档自动生成程序(mysql 代码自动生成工具)

我们在做软件项目开发中,通常需要设计数据库说明文档,虽说有一些工具能帮我们实现,不过总是感觉太重了,有的时候我们是要边写代码,写查看数据库结构,两个软件来回切换总是那么不习惯。这个问题作为java攻城狮的我们,秉着发扬自己动手丰衣足食的品格,我们就手写一段程序,实现自动为指定的数据库生成说明文档的功能。

首先看一下程序的执行效果:

不到一百行代码实现一个Mysql数据库说明文档自动生成程序(mysql 代码自动生成工具)

上面截图中,我们制作一个jsp程序,因为是jsp程序,这样我们可以通过pc、手机浏览器,只要输入程序网址,就会将指定数据库中所有表及每个表中的字段信息的属性都展示出来。我们公司通常都是每个小伙伴都把这个程序放在自己的web应用里,方便随时查看数据库信息。而且有了它,在设计数据库的时候,一边设计一边说明文档就有了,是不是很方便?):)

下面看一下代码的样子

不到一百行代码实现一个Mysql数据库说明文档自动生成程序(mysql 代码自动生成工具)

jsp程序文件源代码:

<%@page contentType=\”text/html\” pageEncoding=\”UTF-8\”%>

<%@page import=\”java.sql.DriverManager\”%>

<%@page import=\”java.sql.DatabaseMetaData\”%>

<%@page import=\”java.sql.Statement\”%>

<%@page import=\”java.sql.SQLException\”%>

<%@page import=\”java.sql.ResultSetMetaData\”%>

<%@page import=\”java.sql.PreparedStatement\”%>

<%@page import=\”java.sql.ResultSet\”%>

<%@page import=\”java.sql.Connection\”%>

<%@page import=\”java.sql.Types\”%>

<%out.clear();%>

<!DOCTYPE html>

<html>

<head>

<meta http-equiv=\”Content-Type\” content=\”text/html; charset=UTF-8\”>

<title>数据库说明文档</title>

<style>

h1{}

h2{font-size:14px; margin: 0; padding: 0; line-height: 32px; font-weight: 100;}

.fields{ width:800px;}

.fields th{ background-color: #46b8da; line-height: 22px; text-align: left; padding:5px;}

.fields td{ background-color: #f5f5f5; width: 25%; line-height: 22px; text-align: left; padding:5px;}

</style>

</head>

<body>

<%

Connection conn = null;

ResultSet rs = null,rs2=null;

Statement stmt=null,stmt2=null;

String dbname=\”totsdk\”;//你的数据库名称

String dbuser=\”root\”;//你的数据库连接用户名

String dbpassword=\”\”;//你的数据库连接密码

try {

conn = DriverManager.getConnection(\”jdbc:mysql://127.0.0.1/\” dbname \”?useUnicode=true&characterEncoding=UTF-8\”,dbuser,dbpassword);

stmt=conn.createStatement();

stmt2=conn.createStatement();

//遍历查询数据库中的表

rs =stmt.executeQuery(\”select table_name,table_comment from information_schema.tables where table_schema = \’\” dbname \”\’\”);

while (rs.next()) {

out.print(\”<h1>表名:\” rs.getString(1) \”</h1>n\”);

out.print(\”<h2>说明:\” rs.getString(2) \”</h2>n\”);

//查询表中的字段

rs2=stmt2.executeQuery(\”show full fields from \” rs.getString(1));

out.print(\”<table class=\”fields\” cellspacing=\”1\” cellpadding=\”0\”>\”);

out.print(\”<tr>\”);

out.print(\”<th>名称</th>\”);

out.print(\”<th>类型</th>\”);

out.print(\”<th>默认值</th>\”);

out.print(\”<th>备注</th>\”);

out.print(\”</tr>\”);

while(rs2.next()){

out.print(\”<tr>\”);

out.print(\”<td>\” rs2.getString(1) \”</td>\”);

out.print(\”<td>\” rs2.getString(2) \”</td>\”);

out.print(\”<td>\” rs2.getString(6) \”</td>\”);

out.print(\”<td>\” rs2.getString(9) \”</td>\”);

out.print(\”</tr>\”);

}

out.print(\”</table>\”);

}

} catch (SQLException e) {

} finally {

try {

rs.close();

rs2.close();

stmt.close();

stmt2.close();

conn.close();

} catch (Exception e) {

}

}

%>

</body>

</html>

代码第30行dbname变量即是要查看的数据库名称信息。其实我们也可以把这个变量设计为获取url参数来的值 ,比如

String dbname=request.getParameter(\”dbname\”);

这样,这个程序就可以支持多个数据库结构信息的查看了,方法就是我们在浏览器中访问的地址换成以下:

不到一百行代码实现一个Mysql数据库说明文档自动生成程序(mysql 代码自动生成工具)

好了,代码比较简单,短短几十行代码搞定数据库文档。但需要注意的是因为这里采用的mysql的内置的表和sql语句获取表和字段的信息,因此对于其它类型的数据库是不起作用的。如果想要做一个兼容所有数据库的程序,可以参考一下淘特jspcms,那里面有个在线数据库管理是可以兼容所有数据库,有兴趣的朋友可以去研究一下。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年12月29日 上午8:44
下一篇 2023年12月29日 上午8:56

相关推荐

  • 博兴县举办“灯塔-党建在线”业务应用系统管理员培训班(灯塔党建在线管理员网址)

    为进一步强化“灯塔-党建在线”网络平台管理员队伍建设,提升运用信息化手段推进党建工作的能力和水平,3月15日,博兴县举办了“灯塔”系统管理员培训班,各党(工)委管理员参加了集中培训…

    科研百科 2024年7月5日
    73
  • 基于MES的航天军工离散机加车间工时管理研究

    1 引言 对于制造型企业而言,工时信息是一种重要制造信息资源,是企业制定生产计划、安排生产过程、评价工人绩效、核算企业成、衡量产品价格等一系列行为的重要依据。企业通过有效的信息化管…

    2022年6月16日
    360
  • 什么样的人不适合搞科研(什么人最适合搞科研项目)

    最适合搞科研项目的人 科研项目是科学技术发展的重要驱动力,需要一群有热情、有创造力、有创新精神的人来参与。在这些人中,最适合搞科研项目的人应该是那些具有高度的动机和责任感,能够承担…

    科研百科 2024年4月3日
    93
  • 消防项目管理软件

    消防项目管理软件: 助力消防项目高效管理 随着消防工程领域的不断增长,消防项目管理软件的需求也越来越大。这些软件可以帮助消防工程师和项目经理更好地管理项目,提高项目的效率和质量。本…

    科研百科 2024年8月13日
    34
  • ep2000公路工程项目管理系统

    ep2000公路工程项目管理系统 随着公路工程行业的发展,公路工程项目管理系统的需求变得越来越普遍。ep2000公路工程项目管理系统是一种功能强大的项目管理工具,可以帮助公路工程项…

    科研百科 2024年5月23日
    80
  • 以“融合型党建”为着力点探索“新城党建”(推进城市基层党建融合)

    党旗在基层一线高高飘扬 上海“十四五”规划纲要明确提出“新城发力”,“五个新城”建设成为市民群众关注的话题。为深入贯彻落实习近平总书记要求上海基层党建“继续探索、走在前头”的殷殷嘱…

    科研百科 2023年2月17日
    227
  • 项目申报和管理系统

    项目申报和管理系统是项目管理中不可或缺的两个环节。在项目申报过程中,我们需要制定项目计划,收集需求和意见,并将其转化为可行的项目方案。而在管理系统中,我们需要实现项目数据的管理和分…

    科研百科 2024年12月20日
    0
  • 公路工程水运管理系统

    公路工程水运管理系统 随着公路工程行业的发展,水运业务也越来越受到重视。公路工程水运管理系统则是为了帮助水运工程师更好地管理自己的业务而设计的。本文将介绍公路工程水运管理系统的主要…

    科研百科 1天前
    0
  • 你真的了解IT资产管理系统(ITAM)吗?(IT资产管理)

    过去,IT部门能够控制自己域内的资产。现在,IT资产管理系统远远超出了带有官方IT批准印章的硬件。基于订阅的软件和员工期望通过市场和应用商店定制他们使用的工具,这带来了新的资产管理…

    2022年5月26日
    2.0K
  • 旅游管理系统项目背景

    旅游管理系统项目背景 随着旅游业的不断发展,旅游管理系统的需求也越来越大。为了更好地管理旅游业,开发一款高效、智能的旅游管理系统是必要的。本文将介绍一个旅游管理系统项目的背景和设计…

    科研百科 2024年12月26日
    1