將JDBC ResultSet結果集轉成List


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";
}


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()方法

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




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM