1
JSPプロジェクトの検索フォームに問題があります。特に、ユーザーはイベントを購読することができ、管理者はそのイベントのすべてのメンバーを検索できる必要があります。JSP - 有効な検索フォームを書く方法
私はこのような形式の書き込み:(それが読み取れない場合は、次の4 <input>
、テーブルuser
と提出のための<input>
の各列に1つがあります)
out.println("<fieldset><legend>Search</legend><form action=\"cercaIscritti.jsp\" method=\"post\">"
+ "Name: <input name=\"name\" type=\"text\"><br>Surname: <input name=\"surname\" type=\"text\"><br>"
+ "Belonging: <input name=\"belonging\" type=\"text\"><br>Countr: <input name=\"country\" type=\"text\"><br>"
+ "<input type=\"submit\" value=\"Cerca\"></fieldset></form>");
を。
管理者が必要な情報を入力できるようにすべてのフィールドをオプションにしたいのですが、どのようにクエリをビルドしますか?
私はこのような何か試してみました:
public ResultSet searchSubs(String name, String surname, String belonging, String country) {
try {
boolean n = false, s = false, b = false, c = false;
String query = "SELECT * FROM user WHERE ";
if (!isEmpty(name)) {
query += "firstName = ?";
n = true;
}
if (!isEmpty(surname)) {
if (n) {
query += " AND lastName = ?";
} else {
query += "lastName = ?";
}
s = true;
}
if (!isEmpty(belonging)) {
if (n || s) {
query += " AND belonging = ?";
} else {
query += "belonging = ?";
}
b = true;
}//and go on
をしかし、どのように私はPreparedStatement
に値を追加することができますか?これは正しい方法ですか?そうでなければ、どうすればそのようなことができますか?
ブーリアンはテストのためだけに中にありますが、私は何らかの方法でそれらを使用すると思っていましたが、私は方法がわかりません。ここで
まずは、ありがとう!これは私が探していたものです! **しかし** IDEはこれを返します: "不明な列 '姓' where句 '"。どうして? PS:インデックスは0から始まらず1から始まると思う。 – tuzzo
あなたは@tuzzoを歓迎しています。テーブルの列の名前をチェックしましたか?正しい名前を使用する必要があります。インデックスは1から始まります。あなたのコメントの前に:) –
あなたは正しいです。 dbでは列は '姓'ではなく、 'lastName'です。今それは動作します、ありがとう! – tuzzo