-2

resultset2 つの値を比較する方法を教えてもらえますか? if ステートメントでのみエラーが発生しますが、残りは機能しています。

Statement s = con.createStatement();
Statement stmnt = con.createStatement();
String query = "select * from tbl_product";
s.execute(query);
ResultSet rs = s.getResultSet();
while(rs.next())
{
    String strOuter=rs.getString(2);
    System.out.println(strOuter);
    String query1 = "select * from PRODUCTS_AJ";
    stmnt.execute(query1);
    ResultSet rs1 = stmnt.getResultSet();
    while(rs1.next())
    {                   
        System.out.println("-------"+rs1.getString(2));
        if(rs.getString(2).equals(rs1.getString(2)))// Getting Error here for this line
        {
            System.out.println("Found");
        }
    }              
}

java.sql.Exceptionデータが見つかりません

4

5 に答える 5

0

rs.getSting(2)rs1 の while ループ内で rs1 の行数だけ実行されます。rs1 ほど多くの行が rs にない場合があります。

于 2013-08-24T15:52:39.663 に答える
0

列の値を再度読み取ることはできません。したがって、ログ用にローカル変数にコピーします。

String val = rs1.getString(2);
System.out.println("-------" + val);

if (rs.getString(2).equals(val)) {
于 2013-08-24T15:38:17.920 に答える
0

あなたができることは

SQL where 句を使用する

String query1 = "select * from PRODUCTS_AJ where fieldNmae = 'something'";

    ResultSetMetaData rsm = rs.getMetaData();
    int colCount = rsm.getColumnCount();

if (colCount > 1)
{
// found
}

ResultSetMetaDataの場合

またはおそらくそうする

ResultSet rsOLD = null;
ResultSet rs = s.getResultSet(); 
// rs will be new ResultSet 

while(condition)
{

// check from second row (maintain if case)
.
.
.

// end of loop

      rsOLD = rs;
}
于 2013-08-24T15:42:21.377 に答える