怎么样用jsp来获取数据库表的结构呢.在java中提供了DatabaseMetaData和ResultSetMetaData两种类他可以帮助我们解决这个问题.示例为取得表的结构的一些常用方法.
1.数据库介绍
类型:mssql 数据库:pubs 表:employee 字段: emp_id fname minit
2.用下面的代码执行
代码片段: 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列是否为自动增长 |