Несколько критериев поиска с использованием JDBC - PullRequest
1 голос
/ 28 февраля 2012

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

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

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

Ответы [ 2 ]

0 голосов
/ 05 апреля 2012

Вы можете написать что-то вроде этого, используя 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)

Надеюсь этопомогает

0 голосов
/ 28 февраля 2012

простое решение - вы создаете свой подпункт where и поддерживает paraList по userinput.

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...