程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 新手上路:JDBC初級應用實例(二)

新手上路:JDBC初級應用實例(二)

編輯:關於JAVA

有時,我們對一種新的數據庫根本不知道它的結構或者是其中的內容,好壞麼我們如何來獲取數據庫的情況呢?

真實的例子是這樣的,我的朋友的公司接到了一個單子,對方使用的數據庫是叫什麼"titanium"的,說實話由於本人的孤陋寡聞,在此之前從來不知道還有這種數據庫,更別說如何訪問了,現在朋友要看裡面有什麼"東西",當然是一籌莫展.所以只好找我.

接到電話後,我先問他是什麼平台上跑的,如果連結的,他說是在Windows下可以建立ODBC數據源,哈哈,就是說可以用Java建立Connection了,OK只能建立一下Connection,那麼就可以得到這個數據庫的所有元信息:

DatabaseMetadata dbmd = conn.getMetadata();然後你可以從這個對象獲取以下信息:

getUrl();  //返回與這個數據庫的連結的URL,當然是已知的,要不你怎麼連上去

getUserName(); //返回與這個數據庫的連結的用戶,同上

isReadOnly();數據庫是否為只讀

getDatabaseProduceName();//數據庫產品名稱

getDatabaseProduceVersion();//版本號

getDriverName();//驅動程序

getDriverVersion();//驅動程序版本

以上內容沒有什麼意義

ResultSet getTables(String catalog,

String schemaPattern,

String tableNamePattern,

String[] types)

可以得到該庫中"表"的所有情況,這裡的表包括表,視圖,系統表,臨時空間,別名,同義詞對於各參數:

String catalog,表的目錄,可能為null,"null"匹配所有

String schemaPattern,表的大綱,同上

String tableNamePattern,表名,同上

String[] types,表的類型,"null"匹配所有,可用的類型為:

TABLE,VIEW,SYSEM TABLE,GLOBAL TEMPORARY,LOCAL TEMPORARY,ALIAS,SYNONYM

例如:

DatabaseMetaData dbmd = conn.getMetaData();

ResultSet rs = dbmd.getTables(null,null,null,null);

ResultSetMetaData rsmd = rs.getMetaData();

int j = rsmd.getColumnCount();

for(int i=1;i<=j;i++){

out.print(rsmd.getColumnLabel(i)+"");

}

out.println();

while(rs.next()){

for(int i=1;i<=j;i++){

out.print(rs.getString(i)+"");

}

out.println();

}

對於更詳細的表中的列的信息,可以用dbmd(不是rsmd).getColumns(

String catalog,

String schemaPattern,

String tableNamePattern,

String columnNamePattern

)

不僅可以獲得rsmd中的信息,還可以獲得列的大小,小數位數,精度,缺省值,列在表中的位置等相關信息.

還有兩個方法,調用和獲取表信息一樣,可以獲得存儲過程和索引的信息:

ResultSet getProcedures(

String catalog,

String schemaPattern,

String procedurePattern

);

ResultSet getIndexINFO(

String catalog,

String schemaPattern,

String table,

boolean unique,boolean approximate

);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved