0

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

取得した季節を変数に保存する必要があります。どうすればよいですか?

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
}

で 1 つのエントリのみを確認したい場合があることに注意して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 に答える