首页 > 技术文章 > 获取Java数据库中结果集的每个字段名和个数

saoge 2020-09-18 18:34 原文

/**
* 查询到多条数据, 封装到List<Map>
*/
public List<Map<String, Object>> queryForMapList(String sql, Object... args) throws SQLException {
PreparedStatement statement = getStatement(sql, args);
// 执行SQL语句, 获取结果集
ResultSet resultSet = statement.executeQuery();

// 获取结果集中的元数据
ResultSetMetaData metaData = resultSet.getMetaData();
// 字段的个数
int count = metaData.getColumnCount();
// 创建List集合
List<Map<String, Object>> list = new ArrayList<>();

// 处理结果集
while (resultSet.next()) {
// 创建Map集合
Map<String, Object> map = new HashMap<>();
// 根据字段的个数, 循环
for (int i = 0; i < count; i++) {
// 获取字段的名字
String columnName = metaData.getColumnName(i + 1);
// 获取字段对应的值
Object object = resultSet.getObject(columnName);
// 将字段名和字段值, 存入map集合中
map.put(columnName, object);
}

// 将map集合添加到List集合中
list.add(map);
}

// 释放资源
JDBCUtils.close(resultSet, statement, connection);

return list;
}

例图

 

 

推荐阅读