#java #oracle #search #drop-down-menu
#java #Oracle #Поиск #выпадающее меню
Вопрос:
У меня есть выпадающее меню, в котором есть список имен столбцов из определенной таблицы в базе данных, и у меня есть текстовое поле, в котором пользователь может ввести то, что ищет. Пользователь сначала выбирает столбец из выпадающего меню и вводит в текстовое поле то, что он / она ищет. Я немного растерялся, как я могу сопоставить имя столбца выпадающего списка и строку текстового поля для поиска в определенном столбце в базе данных Oracle.. Любой пример кода или предложение были бы полезны.. Спасибо
Комментарии:
1. Это Swing-приложение или веб-приложение?
Ответ №1:
String colname = request.getParameter("colname");//get the column name from teh dropdown
String value = request.getParameter("value");//get the value that the user entered
PreparedStatement searchQuery = null;
String searchString = String.format("Select * from yourtable where %s = ?", colname);
//create a connection , say con
searchQuery = con.prepareStatement(searchString);
searchQuery.setString(1, value);
ReultSet rs = searchQuery.executeQuery();
Это решение является лишь базовой идеей, поэтому вам нужно изменить его в соответствии с требованиями. Если столбцы, которые вы ищете, имеют разные типы, то вы должны учитывать это.
Комментарии:
1. 1 но я хотел бы отметить, что это подвергает приложение уязвимости при внедрении SQL. Следует также позаботиться о проверке параметров запроса.
2. Согласовано с уязвимостью SQL-инъекции. Было бы лучше, если бы у вас была проверка значения в
colname
, чтобы подтвердить, что это действительно столбец. ПроверкаUSER_TAB_COLUMNS
представления была бы хорошей идеей, или перечисленный список допустимых имен столбцов мог бы быть еще лучше.