一 . 獲得這個對象的實例
Connection con ;
con = DriverManager.getConnection(url,userName,password);
DatabaseMetaData dbmd = con.getMetaData();java
二. 方法getTables的用法
原型:
ResultSet DatabaseMetaData.getTables(String catalog,String schema,String tableName,String []type)
此方法可返回結果集合ResultSet ,結果集中有5列, 超出會報越界異常
功能描述:獲得指定參數的表信息sql
參數說明:
參數:catalog:目錄名稱,通常都爲空.
參數:schema:數據庫名,對於oracle來講就用戶名
參數:tablename:表名稱
參數:type :表的類型(TABLE | VIEW)數據庫
注意:在使用過程當中,參數名稱必須使用大寫的。不然獲得什麼東西。數組
三. 方法getColumns的用法架構
功能描述:獲得指定表的列信息。oracle
原型:
ResultSet DatabaseMetaData getColumns(String catalog,String schema,String tableName,String columnName)函數
參數說明:
參數catalog : 類別名稱
參數schema : 用戶方案名稱
參數tableName : 數據庫表名稱
參數columnName : 列名稱url
4、方法getPrimaryKeys的用法spa
功能描述:獲得指定表的主鍵信息。設計
原型:
ResultSet DatabaseMetaData getPrimaryKeys(String catalog,String schema,String tableName)
參數說明:
參數catalog : 類別名稱
參數schema : 用戶方案名稱
參數tableName : 數據庫表名稱
備註:必定要指定表名稱,不然返回值將是什麼都沒有。
5、方法.getTypeInfo()的用法
功能描述:獲得當前數據庫的數據類型信息。
6、方法getExportedKeys的用法
功能描述:獲得指定表的外鍵信息。
參數描述:
參數catalog : 類別名稱
參數schema : 用戶方案名稱
參數tableName : 數據庫表名稱
DatabaseMetaData對象提供的是關於數據庫的各類信息,這些信息包括:
一、數據庫與用戶,數據庫標識符以及函數與存儲過程。
二、數據庫限制。
三、數據庫支持不支持的功能。
四、架構、編目、表、列和視圖等。
經過調用DatabaseMetaData的各類方法,程序能夠動態的瞭解一個數據庫。因爲這個類中的方法很是的多那麼就介紹幾個經常使用的方法來給你們參考。
DatabaseMetaData實例的獲取方法是,經過鏈接來得到的
Connection conn = //建立的鏈接。
DatabaseMetaData dbmd = Conn.getMetaData();
建立了這個實例,就可使用他的方法來獲取數據庫得信息。首先是數據庫中用戶標識符的信息的得到,主要使用以下的方法:
getDatabaseProductName()用以得到當前數據庫是什麼數據庫。好比oracle,access等。返回的是字符串。
getDatabaseProductVersion()得到數據庫的版本。返回的字符串。
getDriverVersion()得到驅動程序的版本。返回字符串。
supportsResultSetType(ResultSet.resultype)是斷定是否支持這種結果集的類型。好比參數若是是Result.TYPE_FORWARD_ONLY,那就是斷定是否支持,只能先前移動結果集的指針。返回值爲boolean,true表示支持。
上面介紹的只是幾個經常使用的方法,這個類中還有不少方法,能夠到jdk的幫助文檔中去查看類java.sql.DatabaseMetaData。
這個類中還有一個比較經常使用的方法就是得到表的信息。使用的方法是:
getTables(String catalog,String schema,String tableName,String[] types),
這個方法帶有四個參數,他們表示的含義以下:
String catalog——要得到表所在的編目。串「」」」意味着沒有任何編目,Null表示全部編目。
String schema——要得到表所在的模式。串「」」」意味着沒有任何模式,Null表示全部模式。該參數能夠包含單字符的通配符(「_」),也能夠包含多字符的通配符(「%」)。
String tableName——指出要返回表名與該參數匹配的那些表,該參數能夠包含單字符的通配符(「_」),也能夠包含多字符的通配符(「%」)。
String types——一個指出返回何種表的數組。可能的數組項是:」TABLE」,」VIEW」,」SYSTEM TABLE」,」GLOBAL TEMPORARY」,」LOCAL TEMPORARY」,」ALIAS」,「SYSNONYM」。
經過getTables()方法返回一個表的信息的結果集。這個結果集包括字段有:TABLE_CAT表所在的編目。TABLE_SCHEM表所在的模式,TABLE_NAME表的名稱。TABLE_TYPE標的類型。REMARKS一段解釋性的備註。經過這些字段能夠完成表的信息的獲取。
還有兩個方法一個是得到列getColumns(String catalog,String schama,String tablename,String columnPattern)一個是得到關鍵字的方法getPrimaryKeys(String?catalog, String?schema, String?table)這兩個方法中的參數的含義和上面的介紹的是相同的。凡是pattern的都是能夠用通配符匹配的。getColums()返回的是結果集,這個結果集包括了列的全部信息,類型,名稱,能否爲空等。getPrimaryKey()則是返回了某個表的關鍵字的結果集。
經過getTables(),getColumns(),getPrimaryKeys()就能夠完成表的反向設計了。主要步驟以下:
一、經過getTables()得到數據庫中表的信息。
二、對於每一個表使用,getColumns(),getPrimaryKeys()得到相應的列名,類型,限制條件,關鍵字等。
三、經過1,2得到信息能夠生成相應的建表的SQL語句。
經過上述三步完成反向設計表的過程。