0
我試圖以類似於RDBMS的方式使用DatabaseMetaData
來獲取配置單元的表名稱。使用適用於Hive的JDBC元數據API獲取不明確的結果
示例代碼:
try (Connection con = getJdbcConnection(connectionUri, driverName, username, password);) {
DatabaseMetaData metadata = con.getMetaData();
ResultSet rs = metadata.getTables(null, null, tableName, null);
while (rs.next()) {
System.out.println(rs.getString(3));
}
} catch (SQLException e) {
}
private static void registerDriver(String driverName) {
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
LOG.error("No class found for " + driverName + ". Details: " + e);
}
}
private static Connection getJdbcConnection(String connectionUri, String driverName, String username,
String password) throws SQLException{
registerDriver(driverName);
return DriverManager.getConnection(connectionUri, username,password);
}
有特定數據庫中沒有表。使用不同的表名稱,我得到不同的輸出。
例如:
我把表名emp
,有3條記錄與名稱emp
我把表名employee
,有5條記錄與名稱employee
我把表名emp12
,它沒有返回記錄(預計)
我做錯了什麼?
我不應該使用
DatabaseMetaData
檢查表的存在嗎?