欧美人与禽2O2O性论交,秋霞免费视频,国产美女视频免费观看网址,国产成人亚洲综合网色欲网

不到一百行代碼實現(xiàn)一個Mysql數(shù)據(jù)庫說明文檔自動生成程序(mysql 代碼自動生成工具)

不到一百行代碼實現(xiàn)一個Mysql數(shù)據(jù)庫說明文檔自動生成程序(mysql 代碼自動生成工具)

我們在做軟件項目開發(fā)中,通常需要設計數(shù)據(jù)庫說明文檔,雖說有一些工具能幫我們實現(xiàn),不過總是感覺太重了,有的時候我們是要邊寫代碼,寫查看數(shù)據(jù)庫結構,兩個軟件來回切換總是那么不習慣。這個問題作為java攻城獅的我們,秉著發(fā)揚自己動手豐衣足食的品格,我們就手寫一段程序,實現(xiàn)自動為指定的數(shù)據(jù)庫生成說明文檔的功能。

首先看一下程序的執(zhí)行效果:

不到一百行代碼實現(xiàn)一個Mysql數(shù)據(jù)庫說明文檔自動生成程序(mysql 代碼自動生成工具)

上面截圖中,我們制作一個jsp程序,因為是jsp程序,這樣我們可以通過pc、手機瀏覽器,只要輸入程序網址,就會將指定數(shù)據(jù)庫中所有表及每個表中的字段信息的屬性都展示出來。我們公司通常都是每個小伙伴都把這個程序放在自己的web應用里,方便隨時查看數(shù)據(jù)庫信息。而且有了它,在設計數(shù)據(jù)庫的時候,一邊設計一邊說明文檔就有了,是不是很方便?):)

下面看一下代碼的樣子

不到一百行代碼實現(xiàn)一個Mysql數(shù)據(jù)庫說明文檔自動生成程序(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>數(shù)據(jù)庫說明文檔</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”;//你的數(shù)據(jù)庫名稱

String dbuser=”root”;//你的數(shù)據(jù)庫連接用戶名

String dbpassword=””;//你的數(shù)據(jù)庫連接密碼

try {

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

stmt=conn.createStatement();

stmt2=conn.createStatement();

//遍歷查詢數(shù)據(jù)庫中的表

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變量即是要查看的數(shù)據(jù)庫名稱信息。其實我們也可以把這個變量設計為獲取url參數(shù)來的值 ,比如

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

這樣,這個程序就可以支持多個數(shù)據(jù)庫結構信息的查看了,方法就是我們在瀏覽器中訪問的地址換成以下:

不到一百行代碼實現(xiàn)一個Mysql數(shù)據(jù)庫說明文檔自動生成程序(mysql 代碼自動生成工具)

好了,代碼比較簡單,短短幾十行代碼搞定數(shù)據(jù)庫文檔。但需要注意的是因為這里采用的mysql的內置的表和sql語句獲取表和字段的信息,因此對于其它類型的數(shù)據(jù)庫是不起作用的。如果想要做一個兼容所有數(shù)據(jù)庫的程序,可以參考一下淘特jspcms,那里面有個在線數(shù)據(jù)庫管理是可以兼容所有數(shù)據(jù)庫,有興趣的朋友可以去研究一下。

相關新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部