如何正确获取JDBC查询中的列数

时间:2014-09-22 21:37:57

标签: java jdbc

我有这个代码将JDBC结果集转换为哈希表列表:

private static ArrayList<HashMap<String, Object>> convertResultSet(ResultSet resultSet) throws SQLException {
    ArrayList<HashMap<String, Object>> map = new ArrayList<HashMap<String, Object>>();
    ResultSetMetaData rsmd = resultSet.getMetaData();
    int nColumns = rsmd.getColumnCount();
    while(resultSet.next()) {
        HashMap<String, Object> hash = new HashMap<String, Object>();
        for (int i = 0; i < nColumns; i++)
        {
            hash.put(rsmd.getColumnName(i), resultSet.getObject(i));
        }
        map.add(hash);
    }
    return map;
}

但是当它运行时,会抛出一个&#34;列索引超出范围。&#34;异常。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

javadoc中所述,getColumnName(i)的索引从1开始,而不是从0开始。