將JDBC ResultSet結果集轉成List

jopen 9年前發布 | 2K 次閱讀 Java JDBC

    private List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();

public String queryAll() {  
    Connection conn = null;  
    Statement sta = null;  
    ResultSet rs = null;  
    try {  
        Class.forName("com.mysql.jdbc.Driver");  
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/easyui", "root", "root");  
        sta = conn.createStatement();  
        rs = sta.executeQuery("select * from e_user");  
        ResultSetMetaData md = rs.getMetaData(); //獲得結果集結構信息,元數據  
        int columnCount = md.getColumnCount();   //獲得列數   
        while (rs.next()) {  
            Map<String,Object> rowData = new HashMap<String,Object>();  
            for (int i = 1; i <= columnCount; i++) {  
                rowData.put(md.getColumnName(i), rs.getObject(i));  
            }  
            list.add(rowData);  

        }  
    } catch (ClassNotFoundException e) {  
        e.printStackTrace();  
    } catch (SQLException e) {  
        e.printStackTrace();  
    }  
    return "success";  
}  </pre> 



ResultSet簡介:
    ResultSet包含符合SQL語句中條件的所有行,并且它通過一套get方法(這些get方法可以訪問當前行中的不同列)

    提供了對這些行中數據的訪問。ResultSet.next方法用于移動到ResultSet中的下一行,使下一行成為當前行。

    上面的rs.getObject(i) 即是獲得這一行的數據值

ResultSetMetaData簡介:
    利用ResultSet的getMetaData的方法可以獲得ResultSetMeta對象,而ResultSetMetaData存儲了ResultSet的MetaData。

    所謂的MetaData在英文中的解釋為"Data about Data",直譯成中文則為"有關數據的數據"或者"描述數據的數據",

    實際上就是描述及解釋含義的數據。以Result的MetaData為例,ResultSet是以表格的形式存在,所以getMetaData

    就包括了數據的 字段名稱、類型以及數目等表格所必須具備的信息。在ResultSetMetaData類中主要有一下幾個方法。

    ResultSetMetaData rsmd=rs.getMetaData();

    1、getColumCount()方法

    返回所有字段的數目

    2、getColumName()方法

    根據字段的索引值取得字段的名稱。

    3、getColumType()方法

    根據字段的索引值取得字段的類型

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!