国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JDBC的那點事之DatabaseMetaData之獲取數據庫所有表

2019-11-08 03:17:29
字體:
來源:轉載
供稿:網友

獲取數據庫的所有表:(以MySQLOracle為例,其他類型的數據庫接觸不過,不做解釋)

Connection接口中提供了DatabaseMetaData接口:

提供:getTables()方法,該方法需要傳進4個參數:

第一個是數據庫名稱,對于MySQL,則對應相應的數據庫,對于Oracle來說,則是對應相應的數據庫實例,可以不填,也可以直接使用Connection的實例對象中的getCatalog()方法返回的值填充;

第二個是模式,可以理解為數據庫的登錄名,而對于Oracle也可以理解成對該數據庫操作的所有者的登錄名。對于Oracle要特別注意,其登陸名必須是大寫,不然的話是無法獲取到相應的數據,而MySQL則不做強制要求。

第三個是表名稱,一般情況下如果要獲取所有的表的話,可以直接設置為null,如果設置為特定的表名稱,則返回該表的具體信息。

第四個是類型標準,以數組形式傳值,有"TABLE"、"VIEW"、"SYSTEM TABLE"、"GLOBAL TEMPORARY"、"LOCAL TEMPORARY"、"ALIAS" 和 "SYNONYM"這幾個經典的類型,一般使用”TABLE”,即獲取所有類型為TABLE的表

它返回一個ResultSet對象,有10列,詳細的顯示了表的類型:

TABLE_CAT String => 表類別(可為 null)

TABLE_SCHEM String => 表模式(可為 null)

TABLE_NAME String => 表名稱

TABLE_TYPE String => 表類型。

REMARKS String => 表的解釋性注釋

TYPE_CAT String => 類型的類別(可為 null)

TYPE_SCHEM String => 類型模式(可為 null)

TYPE_NAME String => 類型名稱(可為 null)

SELF_REFERENCING_COL_NAME String => 有類型表的指定 "identifier" 列的名稱(可為 null)

REF_GENERATION String

可根據需要使用

示例:

(MySQL)

DatabaseMetaData metaData = conn.getMetaData();

ResultSet rs = metaData.getTables(conn.getCatalog(), "root", nullnew String[]{"TABLE"});

while(rs.next()) {

   System.out.PRintln(rs.getString("TABLE_NAME"));

}

(Oracle)

DatabaseMetaData metaData = conn.getMetaData();ResultSet rs = metaData.getTables(conn.getCatalog(), "SCOTT", null, new String[]{"TABLE"});while(rs.next()) {    System.out.println(rs.getString("TABLE_NAME"));}

這兩處的代碼,唯一區別的是在第二個參數,Oracle不支持小寫的,必須是大寫的,換成小寫則什么都獲取不到,而MySQL則大小寫俱可,不過我建議是全部使用大寫,這里只是示例······


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 揭阳市| 石渠县| 瑞安市| 巴林右旗| 新化县| 大同县| 金昌市| 罗甸县| 黑山县| 涟源市| 铜梁县| 阿勒泰市| 中牟县| 安溪县| 雷波县| 静宁县| 皮山县| 湘乡市| 高邮市| 望奎县| 织金县| 延津县| 吉水县| 南涧| 琼海市| 农安县| 德州市| 思茅市| 香格里拉县| 腾冲县| 黎城县| 西乡县| 那坡县| 平果县| 桂平市| 乌鲁木齐市| 鄂托克旗| 扶沟县| 民丰县| 乌恰县| 修水县|