次のコードを使用して、サーブレットから応答を取得しています。変数「get」の指定された名前が特定のテーブルにあるかどうかを確認し、1
存在する場合は出力します。
サーブレット コードの一部:
get = request.getParameter("nam");// such as get="kannan"
try {
// Connection code
ResultSet rs = stmt
.executeQuery("select * from newfarmer where rname='" + get
+ "'");
while (rs.next()) {
username = rs.getString("rname");
if (get.equals(username)) {
out.println(1);
}
}
} catch (Exception e) {
out.println(e.toString());
}
私の Android アプリケーションでは、この応答を次のように確認します。
response = CustomHttpClient.executeHttpPost(
"http://moberp.svsugar.com:8080/androidservlt/Modify",
postParameters);
String res = response.toString();
res = res.trim();
if (res.equals("1")) {
flag = 1;
Toast.makeText(getBaseContext(), "Correct", Toast.LENGTH_LONG)
.show();
} else {
flag = 2;
Toast.makeText(getBaseContext(), "please enter correct Ryot name",
Toast.LENGTH_LONG).show();
}
単一のレコードでは非常にうまく機能します。つまり、テーブル「newfarmer」では、「rname」が複数の同じ名前で構成されている場合、else 部分のみが実行されます。
例: テーブルで「kannan」が 2 回表示された場合 サーブレットの出力は次のようになります。
1 1
Android アプリケーションでは、応答が 1 ではないため、明らかに else 部分が実行されます。これは、2 つの同じ名前の場合のみです。テーブルには 10 を超える同じ名前が含まれる場合があります。10 個の同じ名前の場合、サーブレットの出力は次のようになります。
1 1 1 1 1 1 1 1 1 1
だから私はすべてをチェックする必要があります。そのため、if 条件を変更する必要がありますが、どうすればよいかわかりません。誰か答えてください。
前もって感謝します