如何将sql查询的结果保存到变量中?
java.sql.PreparedStatement preparedStatement = null;
String query = "select season from seasonTable where league_name=?";
preparedStatement = conn.prepareStatement(query);
preparedStatement.setString(1, league);
ResultSet rs = preparedStatement.executeQuery();
我需要将检索到的季节保存到变量中,我该怎么做?
答案 0 :(得分:6)
您可以调用rs.next()
将ResultSet的光标移动到下一行。该方法将返回一个布尔值,指示实际是下一行,因此您可以使用if
语句或while
循环来检索第一行或全部返回的行。
// only ever retrieve the value from the first returned row, even if there are multiple
String season = null;
if(rs.next())
season = rs.getString(1);
OR
// retrieve the values of all returned rows and store them in a list
List<String> seasons = new ArrayList<String>();
while(rs.next())
seasons.add(rs.getString(1));
答案 1 :(得分:0)
您需要遍历ResultSet,并获取合适的列。 e.g。
String season = null;
while (rs.next()) {
season = rs.getString(column_name); // you can use column name or index
}
请注意,您可能只想检查ResultSet
中的一个条目,和/或season
是否已填充。另一方面,你可能想记录多个季节,因此:
List<String> seasons = new ArrayList<String>();
while (rs.next()) {
seasons.add(rs.getString(column_name));
}
我更希望按名称而不是索引获取列。这样你就可以改变你的查询(在某种程度上),解除引用仍然有用。
Here是更多的例子。
答案 2 :(得分:0)
String season = null;
if (rs.next()) {
season = rs.getString(1);
}
答案 3 :(得分:0)
查看javadoc您将看到有些方法可以使用索引或其名称从ResultSet访问列。对于要检索的每种类型,都有一种方法:getString()
,getFloat()
等...
答案 4 :(得分:0)
String s;
// Fetch each row from the result set
while (rs.next()) {
// Get the data from the row using the column index
s = rs.getString(1);
/** OR **/
// Get the data from the row using the column name
s = rs.getString("season");
}