2014-01-08 2 views
0

После выбора некоторых продуктов пользователь нажал кнопку «Продолжить». Теперь мне нужно отобразить выбранные данные на следующей странице. Мне удалось получить идентификатор выбранных данных, используя следующий код.Как запросить базу данных, если нам нужно запросить массив id в jsp?

String[] array = request.getParameterValues("arrayid"); 

Теперь мне нужно запросить базу данных mysql, используя «select * from table where id =?» Я могу использовать этот запрос в цикле. Но есть ли какой-нибудь другой или лучший способ сделать это?

ответ

1
String[] array = request.getParameterValues("arrayid");  
String sql = "SELECT * FROM TABLENAME WHERE id IN ?"; 
PreparedStatement ps = con.prepareStatement(sql); 
ps.setArray(1,con.createArrayOf("CHAR", array)); 
+0

Спасибо за ответ. Я понял эту логику. Но при использовании метода createArrayOf() я получаю сообщение об ошибке «java.sql.SQLFeatureNotSupportedException». Я использовал другую логику для решения моей проблемы. Следующая ссылка объясняет, что [Нажмите здесь] (http://www.javaranch.com/journal/200510/Journal200510.jsp#a2) – Sree

2

Использование IN ключевое слово при выборе в качестве выберите * из таблицы, где идентификатор (разделенных запятыми идентификаторов)

0

Если ваш вопрос заключается в том, чтобы запросить набор идентификаторов в таблице, остальные ответы правильно относятся к ключевому слову SQL IN. Однако, если вы задаете конкретно, как это сделать в Java, JDBC's PreparedStatement, который является обычно рекомендуемым способом выполнения запросов в Java, не делает создание этих операторов IN легким. Я опубликовал предложенный способ решения этой проблемы разумно чисто здесь: Can PreparedStatement.addBatch() be used for SELECT queries?