一、ResultSet轉ListMap
把ResultSet轉成ListMap可以更方便的處理數據。可以使用for循環,將每一行數據的key和value取出來放到HashMap中,並把HashMap放到ArrayList中,最後返回ArrayList即可。
public List<Map<String, Object>> resultSetToListMap(ResultSet rs) throws SQLException {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();
while (rs.next()) {
Map<String, Object> row = new HashMap<String, Object>(columns);
for (int i = 1; i <= columns; ++i) {
row.put(md.getColumnName(i), rs.getObject(i));
}
list.add(row);
}
return list;
}
二、ResultSet轉JSON
把ResultSet轉成JSON可以更方便的處理並傳輸數據。可以使用for循環,將每一行數據的key和value取出來放到JSONObject中,最後返回JSONObject即可。
public JSONObject resultSetToJson(ResultSet rs) throws SQLException, JSONException {
JSONObject json = new JSONObject();
ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();
while (rs.next()) {
JSONObject row = new JSONObject();
for (int i = 1; i <= columns; ++i) {
row.put(md.getColumnName(i), rs.getObject(i));
}
json.accumulate("data", row);
}
return json;
}
三、ResultSet轉Map
把ResultSet轉成Map可以更方便的處理數據。可以使用while循環,將第一行數據的key和value取出來放到HashMap中,並把HashMap返回即可。
public Map<String, Object> resultSetToMap(ResultSet rs) throws SQLException {
Map<String, Object> map = new HashMap<String, Object>();
ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();
if (rs.next()) {
for (int i = 1; i <= columns; ++i) {
map.put(md.getColumnName(i), rs.getObject(i));
}
}
return map;
}
四、ResultSet回滾
ResultSet回滾是指取消之前對ResultSet所做的修改並恢復之前的狀態。可以使用ResultSet的rollback方法來實現回滾。示例代碼如下:
try {
ResultSet rs = stmt.executeQuery("SELECT * FROM table");
// 進行更新操作
rs.rollback();
} catch (SQLException e) {
e.printStackTrace();
}
五、ResultSet方法
ResultSet提供了許多便於操作結果集的方法,如getRow、absolute、relative、previous等。示例代碼如下:
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
// 獲取當前行的索引
int index = rs.getRow();
// 將光標移到第一行
rs.first();
// 將光標移到指定行
rs.absolute(5);
// 將光標移動到相對位置
rs.relative(2);
// 將光標移到上一行
rs.previous();
}
六、ResultSet遍歷
ResultSet提供了一種遍歷結果集的方式,即使用while循環和next方法。示例代碼如下:
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
}
七、ResultSet接口
ResultSet接口是Java中操作數據庫中結果集的接口,可以通過實現這個接口來進行結果集的操作。示例代碼如下:
class ResultSetImpl implements ResultSet {
// 實現ResultSet接口的方法
}
八、ResultSet起始索引
ResultSet起始索引是指ResultSet中記錄的第一行索引,可以使用ResultSet的first方法、absolute方法或relative方法來獲取起始索引。示例代碼如下:
ResultSet rs = stmt.executeQuery("SELECT * FROM table");
// 獲取起始索引
rs.first();
int index = rs.getInt("id");
// 將光標移到第5行
rs.absolute(5);
index = rs.getInt("id");
九、ResultSet未關閉的後果
不關閉ResultSet可能會導致連接泄漏、內存泄漏等問題,所以在使用ResultSet後需要及時關閉。示例代碼如下:
ResultSet rs = stmt.executeQuery("SELECT * FROM table");
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
}
rs.close();
十、ResultSet是結果集類
ResultSet是Java中操作數據庫中結果集的類,可以使用ResultSet提供的方法來獲取結果集的信息。示例代碼如下:
ResultSet rs = stmt.executeQuery("SELECT * FROM table");
ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
}
rs.close();
原創文章,作者:CQWBZ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/370090.html
微信掃一掃
支付寶掃一掃