0
String q = "SELECT attr FROM students foo =? AND bar = ?";
PreparedStatement s= connection.prepareStatement(q);
s.setString(1,"a");
s.setString(2."b");
ResultSet rs = s.executeQuery();
if(rs.next())
{
 System.out.println("aba");
}
else
{
 System.out.println("zab");
}

完全にはわかりませんが、私の解釈では、foo が何かで bar が何かである "students" から "attr" を見つけるクエリを実行するということです。クエリの結果が成功した場合は aba が出力され、それ以外の場合は zab が出力されます。

私が間違っている場合は修正してください。 s.setStrings(1,"a") の目的は何ですか? 疑問符は正確に何を表していますか?

4

2 に答える 2

2

あなたはほとんど正しいです。フィールドとを含む行がテーブルに少なくとも 1 つある場合、これが出力されます。そのような行が存在しない場合は、出力されます。studentsfoo='a'bar='b'abazab

疑問符と the0.setString(1,"a")ステートメントは密接に関連しています。は?、クエリへのパラメーター (把握するのに便利な場合はプレースホルダー) を示し、s.set<datatype>()メソッドは「これらを埋める」。最初のパラメーターは入力するパラメーターを指定し、2 番目のパラメーターは値を指定します。

推奨読書: PreparedStatements の使用

于 2012-10-17T07:10:20.960 に答える
1

クエリの疑問符は、後で追加する値を表します。それらはプレースホルダーとして機能します。

したがって、クエリを一度準備してから、次のように値を設定するだけです。

s.setString(1,"a");

これにより、最初の値 (別名、最初の疑問符) が文字列値 に設定されaます。setInt()やなど、他のタイプのそれぞれの関数がありますsetLong()

于 2012-10-17T07:05:42.517 に答える