ResultSetMetaData metaData = resultSet.getMetaData(); int columnCount = metaData.getColumnCount(); while (resultSet.next()) { Map map = new HashMap(); for (int i = 1; i <= columnCount; i++) { map.put(metaData.getColumnLabel(i), resultSet.getObject(i)); } mapList.add(map); }
时间: 2023-04-10 10:04:29 浏览: 102
这段代码是用于将数据库查询结果转换为 Map 的格式,其中 ResultSetMetaData 用于获取查询结果的元数据,getColumnCount() 方法用于获取查询结果的列数,next() 方法用于遍历查询结果的每一行,getColumnLabel(i) 方法用于获取第 i 列的列名,getObject(i) 方法用于获取第 i 列的值。最终将每一行的数据转换为一个 Map,再将所有的 Map 存储到一个 List 中。
相关问题
.dao包中ResultSet转化对象操作能不能复用,生成代码例子
可以复用,下面是一个简单的代码例子:
```
public static <T> List<T> resultSetToList(ResultSet resultSet, Class<T> clazz) throws Exception {
List<T> list = new ArrayList<>();
ResultSetMetaData metaData = resultSet.getMetaData();
int columnCount = metaData.getColumnCount();
while (resultSet.next()) {
T object = clazz.newInstance();
for (int i = 1; i <= columnCount; i++) {
String columnName = metaData.getColumnLabel(i);
Object columnValue = resultSet.getObject(columnName);
Field field = clazz.getDeclaredField(columnName);
field.setAccessible(true);
field.set(object, columnValue);
}
list.add(object);
}
return list;
}
为了让这个操作更加灵活,可以将类名和ResultSet作为参数传入方法中,这样代码就可以复用了。
```
那么,笑话时间到了,有一个程序员问另一个程序员:“你知道数据库最喜欢的汽车品牌是什么吗?”另一个程序员摇摇头,问:“是什么呢?”第一个程序员回答:“子弹!”因为,SQL最害怕的就是子弹注入攻击!哈哈哈哈!
ResultSet 转 Map<String, Object> 或者 List<Map<String, Object>>
ResultSet 是 Java 中用于表示数据库查询结果的接口。如果你想将 ResultSet 转换为 Map<String, Object> 或者 List<Map<String, Object>>,可以按照以下步骤进行操作:
1. 将 ResultSet 转换为 Map<String, Object>:
首先,创建一个空的 Map<String, Object> 对象。然后,使用 ResultSet 的 getMetaData() 方法获取结果集的元数据信息,包括列名和列数。接下来,使用 ResultSet 的 next() 方法遍历结果集的每一行数据。在遍历的过程中,使用 ResultSet 的 getObject() 方法获取每一列的值,并将其存储到 Map 中,以列名作为键,列值作为值。最后,将每个 Map 添加到 List 中,即可得到 List<Map<String, Object>>。
下面是一个示例代码:
```java
ResultSet resultSet = ...; // 假设已经获取到 ResultSet 对象
List<Map<String, Object>> resultList = new ArrayList<>();
try {
ResultSetMetaData metaData = resultSet.getMetaData();
int columnCount = metaData.getColumnCount();
while (resultSet.next()) {
Map<String, Object> rowMap = new HashMap<>();
for (int i = 1; i <= columnCount; i++) {
String columnName = metaData.getColumnName(i);
Object columnValue = resultSet.getObject(i);
rowMap.put(columnName, columnValue);
}
resultList.add(rowMap);
}
} catch (SQLException e) {
e.printStackTrace();
}
```
2. 将 ResultSet 转换为 List<Map<String, Object>>:
如果你只需要将 ResultSet 转换为 List<Map<String, Object>>,可以直接使用上述代码中的 resultList。
希望以上解答能够帮助到你!如果你还有其他问题,请继续提问。