DatabaseMetaData 接口作为整体提供有关数据库的综合信息。
从连Connection取得DatabaseMetaData :
DatabaseMetaData dbmd=con.getMetaData();
DatabaseMetaData有以下常用方法 :
getDriverName() :取得驱动程序名
getDatabaseProductName() :取得数据库名(如:MySql,Sql Server等)
getSQLKeywords() :取得SQL中的关键字
getMaxConnections() : 并发访问的用户个数
getNumericFunctions() : 数据库的所有数学函数的列表
getStringFunctions() : 数据库的所有字符串函数的列表
getSystemFunctions() : 数据库的所有系统函数的列表
getTimeDateFunctions() : 数据库的所有日期时间函数的列表
getTypeInfo() : 数据类型信息
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));
}
getURL() : 数据库的url
getUserName() : 数据库的用户
getTables() :取得数据表信息
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));
}
getPrimaryKeys() :取得主键信息
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));
}
getTableTypes() : 取得表的类型
rs = dbmd.getTableTypes();
System.out.println(" 表的类型有:");
while(rs.next())
System.out.print(" "+ rs.getString(1));
System.out.println();
getColumns() : 列信息
rs = dbmd.getColumns(null, "HR", "EMPLOYEES", "%");
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)+" ");
}
getIndexInfo() : 索引信息
rs = dbmd.getIndexInfo(null, "HR", "EMPLOYEES", false, false);
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)+" ");
}
posted on 2006-01-02 23:30
ZhuJun 阅读(484)
评论(0) 编辑 收藏 所属分类:
开发手记 、
Java基础