java讀取資料庫資料,並將資料存入陣列返回
阿新 • • 發佈:2019-02-03
// 查詢資料庫內手機線上狀態的裝置資訊,得到的是List<Map<>>格式 // 例如[{udid=7b45c30, version=7.1.1, phonename=MiNote3}, {udid=UYT7N17B16002687, version=8.0.0, phonename=Mate10}] public List getOnlineStatus() throws SQLException { List onlinePhoneInfo = new ArrayList(); String sqlString = "SELECT phonename,udid,version FROM phonestatus WHERE status = 'online'"; pst = conn.prepareStatement(sqlString); rSet = pst.executeQuery(); //getMetaData獲得表結構,getColunmCount獲得欄位數 int num = rSet.getMetaData().getColumnCount(); while (rSet.next()) { Map mapOfColValues = new HashMap(num); for (int i = 1; i<= num; i++) { //getColunmName獲取欄位名 mapOfColValues.put(rSet.getMetaData().getColumnName(i),rSet.getObject(i)); } onlinePhoneInfo.add(mapOfColValues); System.out.println(mapOfColValues); } System.out.println(onlinePhoneInfo); return onlinePhoneInfo; }
// 查詢資料庫內手機線上狀態的裝置資訊,得到的是List<Map<>>格式 // 例如[{udid=7b45c30, version=7.1.1, phonename=MiNote3}, {udid=UYT7N17B16002687, version=8.0.0, phonename=Mate10}] public List getOnlineStatus() throws SQLException { List onlinePhoneInfo = new ArrayList(); String sqlString = "SELECT phonename,udid,version FROM phonestatus WHERE status = 'online'"; pst = conn.prepareStatement(sqlString); rSet = pst.executeQuery(); //getMetaData獲得表結構,getColunmCount獲得欄位數 int num = rSet.getMetaData().getColumnCount(); while (rSet.next()) { Map mapOfColValues = new HashMap(num); for (int i = 1; i<= num; i++) { //getColunmName獲取欄位名 mapOfColValues.put(rSet.getMetaData().getColumnName(i),rSet.getObject(i)); } onlinePhoneInfo.add(mapOfColValues); System.out.println(mapOfColValues); } System.out.println(onlinePhoneInfo); return onlinePhoneInfo; }
資料庫中查詢的資料如上圖,rSet.getMetaData()獲取資料庫結構
1、rs.getMetaData().getTableName(1))就可以返回表名
2、rs.getMetaData().getColumnCount()欄位數
3、rs.getMetaData().getColumnName(i));欄位名
上面程式碼,迴圈3個欄位名,並put(欄位名,對應的value),
並存入map
再把map,add到陣列中