国产探花免费观看_亚洲丰满少妇自慰呻吟_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則大小寫俱可,不過我建議是全部使用大寫,這里只是示例······


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 峡江县| 会昌县| 祥云县| 霍州市| 皮山县| 徐汇区| 驻马店市| 虹口区| 麻栗坡县| 盐津县| 临汾市| 比如县| 焉耆| 登封市| 和田县| 临颍县| 高雄县| 昔阳县| 炉霍县| 克拉玛依市| 遵化市| 藁城市| 新和县| 三江| 象山县| 双牌县| 淄博市| 哈尔滨市| 花莲市| 濮阳县| 宜昌市| 大洼县| 崇州市| 五河县| 布拖县| 枣强县| 沈阳市| 贡山| 保定市| 青河县| 马边|