如何从ResultSet检索特定的细胞?



我是Java SQL的新手,我目前正试图从ResultSet获取数据。

我检索的表看起来像这样:

<表类> 名称 数据 tbody><<tr>abc对def假……

ResultSet水平相当低。它几乎完全反映了DB给你的东西。

因此,在ResultSet本身中没有您想要的东西。您有3个选项:

  1. 为您编写一个库,然后使用它。或者,找到一个现有的API—JDBC原始API不是特别方便或易于使用;例如:JOOQ或jdbc。

  2. 只写这段代码自己,每次:

int trues = 0, falses = 0; // a list of boolean values seems kinda stupid, no?
while (rs.next()) {
if (rs.getBoolean("Data")) trues++;
else falses++;
}
  1. 更改SQL的性质:
SELECT COUNT(*), Data FROM myTable GROUP BY Data;

然后在java中:

while (rs.next()) {
int count = rs.getInt(1);
boolean isTrue = rs.getBoolean(2);
}

可以使用.getArray(),但这要求您选择一个实际的SQL数组。像ARRAY_AGG这样的函数可以这样做:

SELECT ARRAY_AGG(Data) FROM MyTable

然后在java中:

if (!rs.next()) throw new SQLException();
Array a = rs.getArray(1);

,但现在你有一个sql数组对象,这也不是特别方便。我告诉过您,JDBC并不是一种特别好用的API,对吧?我真怀疑你会想要这个。

最新更新