使用jsp脚本查看数据库的结构信息
2008-11-28 14:34
495 查看
下面是jsp中获取数据库的结构信息的脚本源码:
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>查看数据库的结构信息</title>
</head>
<body>
<%
// 提示:我使用的是数据库连接池,其资源名为jdbc/db2007
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/db2007");
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
DatabaseMetaData dmd = null;
ResultSetMetaData rsmd = null;
Map tableMap=new HashMap();
try {
conn = ds.getConnection();
// 以下查询该连接中数据库有哪些数据表
dmd = conn.getMetaData();
String[] types = {"TABLE"};
rs=dmd.getTables(null,null,"%",types);
rsmd = rs.getMetaData();
int l = rsmd.getColumnCount();
out.print("<b>数据库表一览表</b><br>");
out.print("<table border=1 cellspacing=0 cellpadding=0>");
out.print("<tr>");
out.print("<td>序号</td>");
for (int i=1;i<=l;i++){
out.println("<td>"+rsmd.getColumnName(i)+"</td>");
}
out.print("</tr>");
int t=0;
String str1="";
int xh=0;
while (rs.next()){
out.print("<tr>");
xh++;
out.print("<td>"+xh+"</td>");
for (int i=1;i<=l;i++){
str1=rs.getString(i);
if (i==3) {
tableMap.put(t+"",str1);
t++;
}
out.println("<td>"+str1+"</td>");
}
out.print("</tr>");
}
out.print("</table>");
// 以下查询每一个表的字段信息
stmt = conn.createStatement();
for (int i=0;i<t;i++){
String s1=tableMap.get(i+"").toString();
if (s1.indexOf("=")>=0) continue;
if (s1.indexOf("$")>=0) continue;
try {
out.println("<b>第"+i+"表名:"+s1+"</b><br>");
rs=stmt.executeQuery("Select * from "+ s1 + " where 5<>5" ); //只需要返回表结构
rsmd=rs.getMetaData();
l=rsmd.getColumnCount();
out.println("<table border=1 cellspacing=0 cellpadding=0>");
out.println("<tr>");
out.println("<td>序号</td>");
out.println("<td>Name</td>");
out.println("<td>Type</td>");
out.println("<td>TypeName</td>");
out.println("<td>Label</td>");
out.println("<td>DisplaySize</td>");
out.println("<td>isAutoIncrement</td>");
out.println("<td>isNullable</td>");
out.println("</tr>");
for (int j=1; j<=l;j++){
out.println("<tr>");
out.print("<td>"+j+"</td>");
out.print("<td>"); out.print(rsmd.getColumnName(j)); out.print("</td>");
out.print("<td>"); out.print(rsmd.getColumnType(j)); out.print("</td>");
out.print("<td>"); out.print(rsmd.getColumnTypeName(j)); out.print("</td>");
out.print("<td>"); out.print(rsmd.getColumnLabel(j)); out.print("</td>");
out.print("<td>"); out.print(rsmd.getColumnDisplaySize(j)); out.print("</td>");
out.print("<td>"); out.print(rsmd.isAutoIncrement(j)); out.print("</td>");
out.print("<td>"); out.print(rsmd.isNullable(j)); out.print("</td>");
out.println("</tr>");
}
out.print("</table>");
} catch (Exception e) {
continue;
}
} //end of for
conn.close();
conn = null;
} catch (Exception e) {
out.print(e);
}
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>查看数据库的结构信息</title>
</head>
<body>
<%
// 提示:我使用的是数据库连接池,其资源名为jdbc/db2007
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/db2007");
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
DatabaseMetaData dmd = null;
ResultSetMetaData rsmd = null;
Map tableMap=new HashMap();
try {
conn = ds.getConnection();
// 以下查询该连接中数据库有哪些数据表
dmd = conn.getMetaData();
String[] types = {"TABLE"};
rs=dmd.getTables(null,null,"%",types);
rsmd = rs.getMetaData();
int l = rsmd.getColumnCount();
out.print("<b>数据库表一览表</b><br>");
out.print("<table border=1 cellspacing=0 cellpadding=0>");
out.print("<tr>");
out.print("<td>序号</td>");
for (int i=1;i<=l;i++){
out.println("<td>"+rsmd.getColumnName(i)+"</td>");
}
out.print("</tr>");
int t=0;
String str1="";
int xh=0;
while (rs.next()){
out.print("<tr>");
xh++;
out.print("<td>"+xh+"</td>");
for (int i=1;i<=l;i++){
str1=rs.getString(i);
if (i==3) {
tableMap.put(t+"",str1);
t++;
}
out.println("<td>"+str1+"</td>");
}
out.print("</tr>");
}
out.print("</table>");
// 以下查询每一个表的字段信息
stmt = conn.createStatement();
for (int i=0;i<t;i++){
String s1=tableMap.get(i+"").toString();
if (s1.indexOf("=")>=0) continue;
if (s1.indexOf("$")>=0) continue;
try {
out.println("<b>第"+i+"表名:"+s1+"</b><br>");
rs=stmt.executeQuery("Select * from "+ s1 + " where 5<>5" ); //只需要返回表结构
rsmd=rs.getMetaData();
l=rsmd.getColumnCount();
out.println("<table border=1 cellspacing=0 cellpadding=0>");
out.println("<tr>");
out.println("<td>序号</td>");
out.println("<td>Name</td>");
out.println("<td>Type</td>");
out.println("<td>TypeName</td>");
out.println("<td>Label</td>");
out.println("<td>DisplaySize</td>");
out.println("<td>isAutoIncrement</td>");
out.println("<td>isNullable</td>");
out.println("</tr>");
for (int j=1; j<=l;j++){
out.println("<tr>");
out.print("<td>"+j+"</td>");
out.print("<td>"); out.print(rsmd.getColumnName(j)); out.print("</td>");
out.print("<td>"); out.print(rsmd.getColumnType(j)); out.print("</td>");
out.print("<td>"); out.print(rsmd.getColumnTypeName(j)); out.print("</td>");
out.print("<td>"); out.print(rsmd.getColumnLabel(j)); out.print("</td>");
out.print("<td>"); out.print(rsmd.getColumnDisplaySize(j)); out.print("</td>");
out.print("<td>"); out.print(rsmd.isAutoIncrement(j)); out.print("</td>");
out.print("<td>"); out.print(rsmd.isNullable(j)); out.print("</td>");
out.println("</tr>");
}
out.print("</table>");
} catch (Exception e) {
continue;
}
} //end of for
conn.close();
conn = null;
} catch (Exception e) {
out.print(e);
}
%>
</body>
</html>
相关文章推荐
- 【数据库】】MySQL之desc查看表结构的详细信息
- 检查存储结构-控制、REDO日志、表空间使用情况、数据文件等信息脚本--HTML
- 使用SQL语句查询数据库信息及表结构
- 使用外部表来查看数据库的日志信息
- JSP,JAVA查看数据库表结构
- 【视频】配置信息管理 的 使用方法(三):查看和修改元数据、查看数据库的表视图存储过程等信息
- Windows中使用MySQL 查看数据库信息(四)
- 利用Excel的vba脚本根据数据库表结构自动生成java的action,bean,dao,mode,service,xml,sql,jsp等
- 查看数据库(SqlServer)结构的SQL脚本
- 使用Jsp输出Person类的成员信息(无数据库连接)
- 教你获取并查看Android已安装应用程序的本地数据库信息(adb命令行与SQLite Manager插件的使用)
- 【视频】配置信息管理 的 使用方法(三):查看和修改元数据、查看数据库的表视图存储过程等信息
- 【视频】配置信息管理 的 使用方法(三):查看和修改元数据、查看数据库的表视图存储过程等信息
- Mysql 查看使用命令行查看数据库和表,字段等信息
- 使用DatabaseMetaData和ResultSetMetaData查看数据库信息
- 每日MySQL之019:使用SHOW命令查看数据库信息
- MySQL下使用一个叫做test数据库,新建一个表,再查看表结构。
- 在前端的JavaScript脚本中,如何高效率的使用数据库中的配置信息
- 使用java查看mongodb的数据库、集合以及数据信息
- 使用有限多例模式管理数据库结构信息