JDBC中ResultSet查询数据的问题

例如Statement执行的语句为 SELECT * from user; 那么除了用getString方法一个列一个列的获取 有没有什么方法可以一次获取到这一行 所有的数据。 或者说有没有什么办法可以获取到有几个列。 然后再循环获取也可以。

可以使用ResultSetMetaData:

    ResultSetMetaData resultSetMetaData =  resultSet.getMetaData(); 
    int cols = resultSetMetaData.getColumnCount();
    HashMap<String, Object> hashMap = null; 
    while(rs.next()){
        hashMap = new HashMap<String, Object>();

        for (int i = 1; i <= cols; i++) {
            hashMap.put(resultSetMetaData.getColumnLabel(i), rs.getObject(i)); 

        }
        result.add(hashMap);
    }

hibernate 里封装好了直接返回list 。但是hibernate占用资源很可观。

好多都忘记了 。看看别人怎么说吧!

你可以用for循环然后getObject(),循环取出来,但是你设置进属性的时候还得一个个来,不然数据类型不一致肯定不行啊!