结果集获取单个列中的所有行值
Result Set Get all row values in a single column
我现在正在编写一个测试,我需要将一些数据库结果与 UI table 在 Java 中使用 Selenium 进行比较。我的 UI 结果以 ArrayList 格式到达。我的控制台告诉我结果类似于“[27002, 55691, 58716, 95362]”。这工作正常。
我有另一个 class,它对我的数据库进行 JDBC 调用以获得预期结果。我正在使用 ResultSet 方法来获取这些值。我的代码如下所示:
(注意:我的 JDBC 连接等是在我将 SQL 查询传递给的方法 "runQuery" 中处理的)
public ArrayList queryForTPOSMembersByHospital() throws SQLException {
String strQueryText = "select distinct _Member_Number and rest of query here that returns one column of results and 4 rows of data";
ResultSet rs = runQuery(strQueryText);
ArrayList<String> memberNos = new ArrayList<String>();
while (rs.next()) {
memberNos.add(rs.getString("_Member_Number"));
return memberNos;
}
return null;
}
但是当我输出 memberNos 时,我只得到一个值 [27002] 而不是我期望的 4。
我在想我是否需要做一些类似 memberNos.addAll 的事情?而不是 memberNos.add?围绕这种方法尝试了一些事情,但还没有得到任何运气。
因为你是在while循环里面返回,所以你的代码应该是
while (rs.next()) {
memberNos.add(rs.getString("_Member_Number"));
}
return memberNos
您的方法应该 return 类型为 ArrayList
的数据,以便从您的代码中删除 return 语句,并且 return memberNos
如下所示:
public ArrayList queryForTPOSMembersByHospital() throws SQLException {
String strQueryText = "select distinct _Member_Number and rest of query here that returns one column of results and 4 rows of data";
ResultSet rs = runQuery(strQueryText);
ArrayList<String> memberNos = new ArrayList<String>();
while (rs.next()) {
memberNos.add(rs.getString("_Member_Number"));
}
return memberNos;
}
试试这个代码:
public ArrayList queryForTPOSMembersByHospital() throws SQLException {
String strQueryText = "select distinct _Member_Number and rest of query here that returns one column of results and 4 rows of data";
ResultSet rs = runQuery(strQueryText);
ArrayList < String > memberNos = new ArrayList < String > ();
while (rs.next()) {
memberNos.add(rs.getString("_Member_Number"));
}
return memberNos;
}
您是从 while 循环返回的,这就是为什么您只得到一个值的原因。
我现在正在编写一个测试,我需要将一些数据库结果与 UI table 在 Java 中使用 Selenium 进行比较。我的 UI 结果以 ArrayList 格式到达。我的控制台告诉我结果类似于“[27002, 55691, 58716, 95362]”。这工作正常。
我有另一个 class,它对我的数据库进行 JDBC 调用以获得预期结果。我正在使用 ResultSet 方法来获取这些值。我的代码如下所示: (注意:我的 JDBC 连接等是在我将 SQL 查询传递给的方法 "runQuery" 中处理的)
public ArrayList queryForTPOSMembersByHospital() throws SQLException {
String strQueryText = "select distinct _Member_Number and rest of query here that returns one column of results and 4 rows of data";
ResultSet rs = runQuery(strQueryText);
ArrayList<String> memberNos = new ArrayList<String>();
while (rs.next()) {
memberNos.add(rs.getString("_Member_Number"));
return memberNos;
}
return null;
}
但是当我输出 memberNos 时,我只得到一个值 [27002] 而不是我期望的 4。
我在想我是否需要做一些类似 memberNos.addAll 的事情?而不是 memberNos.add?围绕这种方法尝试了一些事情,但还没有得到任何运气。
因为你是在while循环里面返回,所以你的代码应该是
while (rs.next()) {
memberNos.add(rs.getString("_Member_Number"));
}
return memberNos
您的方法应该 return 类型为 ArrayList
的数据,以便从您的代码中删除 return 语句,并且 return memberNos
如下所示:
public ArrayList queryForTPOSMembersByHospital() throws SQLException {
String strQueryText = "select distinct _Member_Number and rest of query here that returns one column of results and 4 rows of data";
ResultSet rs = runQuery(strQueryText);
ArrayList<String> memberNos = new ArrayList<String>();
while (rs.next()) {
memberNos.add(rs.getString("_Member_Number"));
}
return memberNos;
}
试试这个代码:
public ArrayList queryForTPOSMembersByHospital() throws SQLException {
String strQueryText = "select distinct _Member_Number and rest of query here that returns one column of results and 4 rows of data";
ResultSet rs = runQuery(strQueryText);
ArrayList < String > memberNos = new ArrayList < String > ();
while (rs.next()) {
memberNos.add(rs.getString("_Member_Number"));
}
return memberNos;
}
您是从 while 循环返回的,这就是为什么您只得到一个值的原因。