実現したいこと
ここに実現したいことを箇条書きで書いてください。
4つの変数(loginId, userName, startBirthDate, endBirthDate)にのいずれかに値が入っていた場合にそれぞれに対応したif文内の処理を実行して変数sqlに結合する。
前提
eclipseで検索画面に入力された値に従ってSQL文を結合していくという処理のコードを書いています。本来であればtoStringメソッドを使用するべきだと思うのですが、今回はif文で必要なSQL文を結合していくやり方でやりたいと思っています。
発生している問題・エラーメッセージ
public static List<User> search(String loginId, String userName, String startBirthDate, String endBirthDate) { Connection conn = null; List<User> userList = new ArrayList<User>(); try { conn = DBManager.getConnection(); String sql = "SELECT * FROM user WHERE is_admin = false"; if ("".equals(loginId)) { sql += " AND login_id = ?"; } if ("".equals(userName)) { sql += " AND name LIKE ?"; } if ("".equals(startBirthDate)) { sql += " AND ? <= birth_date"; } if ("".equals(endBirthDate)) { sql += " AND birth_date <= ?"; } (以降割愛)
試したこと
プログラミングスクールのメンターには上のコードにあるように条件式の書き方を「"".equals(loginId)」のように書くように指示されたのですが、この場合、変数が空文字の時の処理を記述することになり、目的の
である「変数に値が入った場合の処理」がif文の中に記述できなくなってしまうのではないかと思っております。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー