我正在同时执行多个查询并检索结果。但是,查询属于多个表,因此,在检索结果集时,很难识别结果集属于哪个表。 任何人都可以在这里帮助识别每个查询结果集的表名吗?
我尝试了下面的代码,但表名是空白的!!!!
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;
}
});
请告知,这里做错了什么? :(
答案 0 :(得分:0)
你这里没有做错任何事。问题是由与DBMS或JDBC驱动程序相关的方法本身引起的。
请见doc。 &#39;表名或&#34;&#34;如果不适用&#39;建议在你的情况下,DBMS /驱动程序不提供所需的信息,导致该方法返回一个空字符串。
我担心,您必须找到另一种方法来检测结果来自哪个查询。