У меня возникли небольшие проблемы при попытке динамически сгенерировать оператор SQL SELECT, сгенерированный из записи с веб-страницы.По сути, у меня есть небольшая поисковая система на сайте, она принимает три параметра (цена, город, бренд), поэтому у меня есть JavaBean, построенный таким же образом, только с 3 атрибутами, одинаковыми.При выполнении SELECT для базы данных я мог бы сделать это, используя PreparedStatement
String sql=select * from product where price<=? and city=? and brand=?;
prep=conn.prepareStatement(sql);
prep.setDouble(1,price);
prep.setString(2,city);
prep.setString(3,brand);
, где prep, конечно, является PreparedStatement obj. Моя проблема возникает, когда пользователь не вставляет параметр в поле веб-страницыпотому что, видимо, он не заинтересован в ограничении.Мне нужно найти способ «вырезать» запись во время выполнения, например:
city field = ""?затем вычеркните город из критериев поиска:
String sql=select * from product where price<=? and brand=?;
Один из способов, которым я мог бы это сделать, - это заполнить код в сервлете командой else-if, но я уверен, что это не единственное решение.Другим потенциальным решением было бы использование IFNULL (expr1, expr2) функции SQL, но в случае нулевого значения я должен просто удалить нулевое поле из запроса.
У вас есть какой-нибудь совет?
Надеюсь, это достаточно ясно, как я это объяснил.