import java.sql.*; public class GetDBInfo { public GetDBInfo() { } public static void main(String[] args) { try{ Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String url="jdbc:microsoft:sqlserver://GAOXIANG:1433;DataBaseName=master"; String user="daryl715"; String pass="1234"; String s; Connection con=DriverManager.getConnection(url,user,pass); DatabaseMetaData dbmd=con.getMetaData(); s = dbmd.getDriverName(); System.out.println("驱动程序的名称是: "+s); System.out.println(" "); s = dbmd.getDatabaseProductName(); System.out.println ("数据库名称是:"+s); System.out.println(" "); ResultSet rs = dbmd.getSchemas(); System.out.println("模式名有:"); while(rs.next()) System.out.print(" "+rs.getString(1)); System.out.println(); s = dbmd.getSQLKeywords(); System.out.println("SQL中的关键词为: "+s); System.out.println(" "); int max=dbmd.getMaxColumnNameLength(); System.out.println ("列名的最大长度可以是:"+max); System.out.println(" "); max = dbmd.getMaxTableNameLength(); System.out.println ("表名的最大长度可以是:"+max); System.out.println(" "); max = dbmd.getMaxColumnsInSelect(); System.out.println ("一个select 子句所能返回的最多列数列名的最大长度可是是:"+max); System.out.println(" "); max = dbmd.getMaxTablesInSelect(); System.out.println ("一个SELECT语句最多可以访问多少个表:"+max); System.out.println(" "); max = dbmd.getMaxColumnsInTable(); System.out.println ("表中允许的最多列数:"+max); System.out.println(" ");
max = dbmd.getMaxConnections(); System.out.println ("并发访问的用户个数:"+max); System.out.println(" "); max = dbmd.getMaxStatementLength(); System.out.println ("SQL语句最大允许的长度:"+max); System.out.println(" "); s = dbmd.getNumericFunctions(); System.out.println("数据库的所有数学函数的列表: "+s); System.out.println(" "); s = dbmd.getStringFunctions(); System.out.println("数据库的所有字符串函数的列表: "+s); System.out.println(" "); s = dbmd.getSystemFunctions(); System.out.println("数据库的所有系统函数的列表: "+s); System.out.println(" "); s = dbmd.getTimeDateFunctions(); System.out.println("数据库的所有日期时间函数的列表: "+s); System.out.println(" "); rs = dbmd.getTypeInfo(); while(rs.next()) { System.out.print(" 数据类型名:"+rs.getString(1)); System.out.print(" 数据类型:"+ rs.getString(2)); System.out.print(" 精度:"+ rs.getString(3)); System.out.println(" 基数:"+ rs.getString(18)); } System.out.println(" "); s = dbmd.getURL(); System.out.println("此数据库的url: "+s); System.out.println(" "); s = dbmd.getUserName(); System.out.println("此数据库的用户: "+s); System.out.println(" "); String [ ] t = { "TABLE", "VIEW" }; rs = dbmd.getTables(null, "HR", "%", t); while(rs.next()){ System.out.print("目录名:"+rs.getString(1)); System.out.print(" 模式名:"+rs.getString(2)); System.out.print(" 表名:"+rs.getString(3)); System.out.print(" 表的类型:"+rs.getString(4)); System.out.println(" 注释:"+rs.getString(5)); } System.out.println(" "); rs = dbmd.getPrimaryKeys(null, "HR","EMPLOYEES"); while(rs.next()){ System.out.print("目录名:"+rs.getString(1)); System.out.print(" 模式名:"+rs.getString(2)); System.out.print(" 表名:"+rs.getString(3)); System.out.print(" 列名顺序号:"+rs.getString(4)); System.out.print(" 列名顺序号:"+rs.getString(5)); System.out.println(" 主键名:"+rs.getString(6)); } System.out.println(" "); rs = dbmd.getTableTypes(); System.out.println(" 表的类型有:"); while(rs.next()) System.out.print(" "+ rs.getString(1)); System.out.println(); System.out.println(" "); rs = dbmd.getColumns(null, "HR", "EMPLOYEES", "%"); System.out.println(" 表名 "+" 列名 "+" 数据类型"+" 本地类型名"+" 列的大小"+ " 小数位数"+" 数据基数"+" 是否可空"+" 索引号"); while(rs.next()){ System.out.print(rs.getString(3)+" "); System.out.print(rs.getString(4)+" "); System.out.print(rs.getString(5)+" "); System.out.print(rs.getString(6)+" "); System.out.print(rs.getString(7)+" "); System.out.print(rs.getString(9)+" "); System.out.print(rs.getString(10)+" "); System.out.print(rs.getString(11)+" "); System.out.println(rs.getString(17)+" "); } System.out.println(" "); rs = dbmd.getIndexInfo(null, "HR", "EMPLOYEES", false, false); System.out.println(" 表名"+" 索引名"+" 索引类型"+" 索引列名"+" 索引顺序"+ " 小数位数"+" 数据基数"+" 是否可空"+" 索引号"); while(rs.next()){ System.out.print(rs.getString(3)+" "); System.out.print(rs.getString(6)+" "); System.out.print(rs.getString(7)+" "); System.out.print(rs.getString(9)+" "); System.out.println(rs.getString(10)+" "); } System.out.println(" "); rs.close(); con.close(); } catch(Exception e){System.out.println(e);} new GetDBInfo(); } }

|