2012-02-28 3 views
1

Мне нужно написать код для поиска в базе данных для определенного набора значений на основе нескольких пользовательских входов. Максимально пользователь может ввести 5 критериев поиска и может быть не равным 1 или 2 или 3.Несколько критериев поиска с использованием JDBC

Как я могу продолжить это? Может ли подготовленное заявление помочь мне?

Я использую MS Access как базу данных.

ответ

0

простое решение заключается в том, что вы создаете свой подраздел where и поддерживаете paraList по пользовательскому пути.

например. у вас есть 5 критериев a, b, c, d, e.

в вашей программе, проверьте, есть ли вход в A, если да, добавьте его туда, где (может быть Like or =), затем добавьте входное значение в список (paraList).

В конце вы объединяете встроенный подраздел с вашим подготовленным заголовком и задаете параметр с помощью параметра paraList.

0

Вы можете написать что-то вроде этого, используя NamedParameterStatement

SELECT field1, field2 
FROM MY_TABLE 
WHERE (:P_FIELD1 IS NULL OR FIELD1 = :P_FIELD1) 
AND (:P_FIELD2 IS NULL OR FIELD2 LIKE :P_FIELD2) 

Я рекомендую вам использовать нужное поле, чтобы ограничить сканирование (что-то вроде диапазона данных)

SELECT field1, field2 
FROM MY_TABLE 
WHERE DATE_FIELD BETWEEN :P_DATE1 AND :P_DATE2) 
AND (:P_FIELD1 IS NULL OR FIELD1 = :P_FIELD1) 
AND (:P_FIELD2 IS NULL OR FIELD2 LIKE :P_FIELD2) 

Надеется, что это помогает

Смежные вопросы