我正在同时执行多个查询并检索结果。但是,查询属于多个表,因此,在检索结果集时,很难确定结果集属于哪个表。任何人都可以在这里帮助如何识别每个查询结果集的表名称吗?
我尝试了下面的代码,但表名为空!!!
public static void getColumnNames(ResultSet rs) throws SQLException {
if (rs == null) {
return;
}
// get result set meta data
ResultSetMetaData rsMetaData = rs.getMetaData();
int numberOfColumns = rsMetaData.getColumnCount();
// get the column names; column indexes start from 1
for (int i = 1; i < numberOfColumns + 1; i++) {
String columnName = rsMetaData.getColumnName(i);
// Get the name of the column's table name
String tableName = rsMetaData.getTableName(i);
System.out.println("column name=" + columnName + " table=" + tableName + "");
}
}
我像这样调用此方法:
jdbcTemplate.query(sql, new ResultSetExtractor<ResultSet>() {
@Override
public ResultSet extractData(ResultSet resultSet) throws SQLException,
DataAccessException {
getColumnNames(resultSet);
return resultSet;
}
});
请指教,这里做错了什么?:(
你在这里没有做错任何事。该问题分别由与 DBMS 或 JDBC 驱动程序相关的方法本身引起。
请参阅此文档。"表名或 " 如果不适用"表示在您的情况下,DBMS/驱动程序不提供所需的信息,从而导致该方法返回空字符串。
恐怕,您必须找到另一种方法来检测结果来自哪个查询。