网站中经常用到的是数据库中的记录,然而有的时候我们需要对数据库的表机构也要了解
怎么样用jsp来获取数据库表的结构呢.在java中提供了DatabaseMetaData和ResultSetMetaData两种类他可以帮助我们解决这个问题.示例为取得表的结构的一些常用方法.

1.数据库介绍
类型:mssql  数据库:pubs  表:employee 字段: emp_id fname minit 

2.用下面的代码执行
"; 
String clmtype=""; 
String clmsize=""; 
String nulllog=""; 
String increase = ""; 
for(int i=1;i<=rsmd.getColumnCount();i++) 

   clmname=clmname+""; 
   clmtype=clmtype+""; 
   clmsize=clmsize+""; 
   nulllog = nulllog+""; 
   increase = increase+""; 

clmname=clmname+""; 
clmtype=clmtype+""; 
clmsize=clmsize+""; 
out.println(""); 
out.println(clmname); 
out.println(clmtype); 
out.println(clmsize); 
out.println(nulllog); 
out.println(increase); 
out.println("
代码片段:
try 

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=pubs","wzh","*****"); 
Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
ResultSet rs=stmt.executeQuery("select * from employee"); 
ResultSetMetaData rsmd = rs.getMetaData(); 
String clmname="
列名
类型
大小
null
increase"+rsmd.getColumnName(i)+""+rsmd.getColumnTypeName(i)+""+rsmd.getColumnDisplaySize(i)+""+rsmd.isNullable(i)+""+rsmd.isAutoIncrement(i)+"
"); 
rs.close(); 
stmt.close(); 
con.close(); 

catch(Exception e) 

    out.println(e); 

%>  3.执行结果
  
   可以看到emploee的表的结构就展现在我们的眼前了.
4.代码解释
提示:
rsmd.getColumnCount() 取得表中的列的总数 
rsmd.getColumnName(i) 取得第i列的名称 
rsmd.getColumnTypeName(i) 取得第i列的类型 
rsmd.getColumnDisplaySize(i) 取得第i列的显示大小 
rsmd.isNullable(i) 判断第i列是能否为空 
rsmd.isAutoIncrement(i) 判断第i列是否为自动增长
 
09-18 18:26