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