Я новичок в JDBC, в настоящее время я не уверен, как динамически генерировать запрос с несколькими условиями, в которых?
Вот запрос с использованием JDBC с одним условием:
SELECT
sp.*, se.sepurch_email, issuppno, isstates
FROM supplier sp
LEFT JOIN suppliser_email se ON spsuppno = sesuppno AND spstate = sestate
LEFT JOIN int_supplier ON spsuppno = issuppno AND islive = 'Y'
WHERE
spsuppno = : SUPPLIER_NUMBER_PARAM AND spstate = : SUPPLIER_STATE_CODE_PARAM;
Теперь у меня есть запрос со списком (SUPPLIER_NUMBER_PARAM, SUPPLIER_STATE_CODE_PARAM)
Как я могу преобразовать запрос в формат динамически, как показано ниже, потому что я не знаю, сколько в списке запросов:
WHERE
(spsuppno = 1000 AND spstate = 'vic')
OR
(spsuppno = 2000 AND spstate = 'NSW')
Большое спасибо!
@ М.Прохоров, откуда ты знаешь, что я этого не делал ?? насмешки
@ М.Прохоров сб
Потому что вы не показываете попытки.
У вас не так много вариантов. Вам нужно будет составить запрос самостоятельно.




Вы можете попробовать что-то похожее на то, что я использовал некоторое время назад
public List<Book> findAllFiltered(String title, String genre, String author) {
Connection connection = jdbConnectionWrapper.getConnection();
List<Book> books = new ArrayList<>();
try {
String query = "SELECT * FROM book";
if (!StringUtils.isNullOrEmpty(title) ||
!StringUtils.isNullOrEmpty(genre) ||
!StringUtils.isNullOrEmpty(author)) {
query = query + " WHERE";
}
if (!StringUtils.isNullOrEmpty(title)) {
query = query + " title LIKE '%" + title + "%'";
}
if (!StringUtils.isNullOrEmpty(genre)) {
if (!StringUtils.isNullOrEmpty(title)) {
query = query + " AND";
}
query = query + " genre LIKE '%" + genre + "%'";
}
if (!StringUtils.isNullOrEmpty(author)) {
if (!StringUtils.isNullOrEmpty(title) ||
!StringUtils.isNullOrEmpty(genre)) {
query = query + " AND";
}
query = query + " author LIKE '%" + author + "%'";
}
System.out.println(query);
PreparedStatement preparedStatement = connection.prepareStatement(query);
//some extra code here for retrieveing data
Пожалуйста, используйте статью по ссылке из oracle в заявлении подготовки JDBC. https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
Там есть пример того, как вы можете заставить это работать
или обратитесь к
Не похоже, что вы пытались что-то делать самостоятельно. Другой человек мог проголосовать против по какой-то другой причине, но мой голос определенно из-за этого.