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
检查表的存在吗?