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()方法
根據字段的索引值取得字段的類型