You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从ResultSet中提取指定单元格数据并转换为Boolean数组

实现方案

错误原因说明

ResultSet.getArray("Data") 是用于读取当前行中SQL ARRAY类型字段的方法,无法直接提取结果集整列的所有行数据,这是之前调用失败的核心原因。ResultSet本身是逐行读取的游标对象,默认不会自动聚合整列数据。

实现步骤

你需要手动遍历结果集的每一行,逐行读取Data列的值后聚合为数组,示例代码如下:

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public Boolean[] getBooleanArrayFromResultSet(ResultSet rs) throws SQLException {
    List<Boolean> dataList = new ArrayList<>();
    // 逐行遍历结果集
    while (rs.next()) {
        Boolean value = rs.getBoolean("Data");
        // 若Data列允许为NULL,需添加以下判断保留null值,否则getBoolean会默认将NULL转为false
        if (rs.wasNull()) {
            value = null;
        }
        dataList.add(value);
    }
    // 集合转为Boolean数组返回
    return dataList.toArray(new Boolean[0]);
}

注意事项

  • 调用方法前确保ResultSet的游标处于初始位置,避免提前调用next()导致第一行数据丢失
  • 若查询返回的行数极大,需评估内存占用,避免一次性加载所有数据导致OOM

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:24:03