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 閱讀(509)
評論(0) 編輯 收藏 所屬分類:
開發手記 、
Java基礎