如何将JDBC查询的结果保存到变量中?

时间:2012-08-02 10:03:53

标签: java

java中的

如何将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();

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

5 个答案:

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

阅读JDBC tutorial

答案 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");
        }