2016-03-09 64 views
0

我正在同時執行多個查詢並檢索結果。但是,查詢屬於多個表,所以當檢索到resultset時,很難確定結果集屬於哪個表。 任何人都可以在這裏幫助如何識別每個查詢結果集的表名稱?需要使用Spring JDBCTemplate執行的多個查詢的數據庫表名

我嘗試了下面的代碼,但表名是空的!

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

你沒有做錯什麼在這裏。問題是由方法本身與你的DBMS或分別JDBC驅動程序,連接引起的。

看到這個doc請。「表名或‘’如果不適用',則表示在您的情況下,DBMS /驅動程序不提供所需信息,導致該方法返回空字符串。

恐怕您必須找到另一種方法來檢測哪個查詢結果來源於:

+0

謝謝。似乎是我DBMS的一個限制,會嘗試找到一種替代方法。再次感謝。 – user5423592

+0

歡迎您。請不要忘記點擊「接受此答案」,以便將其標記爲已完成。 – MyBrainHurts

相關問題