我是Java SQL的新手,我目前正试图从ResultSet获取数据。
我检索的表看起来像这样:
<表类>
名称
数据
tbody><<tr>abc 对 def 假 … … 表类>
ResultSet
水平相当低。它几乎完全反映了DB给你的东西。
因此,在ResultSet本身中没有您想要的东西。您有3个选项:
-
为您编写一个库,然后使用它。或者,找到一个现有的API—JDBC原始API不是特别方便或易于使用;例如:JOOQ或jdbc。
-
只写这段代码自己,每次:
int trues = 0, falses = 0; // a list of boolean values seems kinda stupid, no?
while (rs.next()) {
if (rs.getBoolean("Data")) trues++;
else falses++;
}
- 更改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,对吧?我真怀疑你会想要这个。