0

在 java.How 将 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();

我需要将检索到的季节保存到变量中,我该怎么做?

4

5 回答 5

7

您可以调用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);

或者

// 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));
于 2012-08-02T10:07:02.843 回答
0

您需要遍历 ResultSet,并获取合适的列。例如

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)); 
}

我宁愿按名称而不是按索引获取列。这样,您可以(在某种程度上)更改您的查询,并且取消引用仍然有效。

这里还有一些例子。

于 2012-08-02T10:05:43.697 回答
0
String season = null;
if (rs.next()) {
    season = rs.getString(1);
}

阅读JDBC 教程

于 2012-08-02T10:05:48.350 回答
0

查看javadoc,您会看到有一些方法可以使用它们的索引或名称来访问 ResultSet 中的列。对于要检索的每种类型,都有一个方法 :getString()getFloat()...

于 2012-08-02T10:07:01.280 回答
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");
        }
于 2012-08-02T10:09:13.057 回答