我有一个查询,它返回多行到结果集。现在我需要将总行数返回到调用此函数的应用程序。
我尝试使用此代码:
final PreparedStatement ps = con.prepareStatement(query);
rs = ps.executeQuery();
while (rs.next()) {
result = rs.getInt(1);
}
通过此代码,我只能返回一个值。 现在我想返回多行
答案 0 :(得分:3)
创建Integer
ArrayList并添加result
,返回该数组列表。
ArrayList<Integer> resultList = new ArrayList<Integer>();
while (rs.next()) {
result = rs.getInt(1);
resultList.add(result);
}
return resultList;
答案 1 :(得分:1)
您可以使用以下代码:
public static List<String> getSqlQueryResult(String sqlQuery) {
List<String> lst = new ArrayList<String>();
try {
Statement stmt = conSql.createStatement();
ResultSet res = stmt.executeQuery(sqlQuery);
ResultSetMetaData rsmd = res.getMetaData();
while (res.next()) {
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
lst.add(res.getString(i));
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return lst;
}
答案 2 :(得分:0)
尝试此代码希望这可以帮助您
final PreparedStatement ps = con.prepareStatement(query);
ResultSet rs=ps.getResutlSet();
ResultSetMetaData rsmd=rs.getMetaData();
for(int i=1;i<=rsmd.getRowCount();i++){
String resut=rsmd.getString(i);
}
答案 3 :(得分:0)
在此行中result = rs.getInt(1);
每次都会使用新值替换结果。
一个好的替代方法是将值存储在列表中然后返回列表,前提是方法返回类型应为List
答案 4 :(得分:0)
结果集将包含查询返回的行数。 使用结果集object.next我们可以轻松浏览这些数据行。 在上面的代码中,您只获得一个值。 如果结果集包含多个值。 然后使用索引获取此值。
while(rs. next)
{
result1=rs.getInt(1);//this will get the two value in each row.
result2=rs.getInt(2);
}
如果有多个值,则使用那么多索引rs.getint(1)
.... rs.getInt(10)
也适用于弦乐rs.getString(2)