Вставка переменной в SQL-запрос из Java

Как вы вставляете переменные в SQL-запрос?

Это то, что у меня есть до сих пор...

public String getBugList(int amount) {
    Connection con  = DatabaseConnection.getConnection();
    try (PreparedStatement ps = con.prepareStatement("SELECT submitter, report FROM bugs_log ORDER BY id DESC limit ))
}

Я пытаюсь перечислить ошибки количества. Поэтому, если я ввожу 2, тогда будет отображаться только верхняя часть.

Ответы

Ответ 1

Попробуйте этот код:

public String getBugList(int amount) {
    Connection con  = DatabaseConnection.getConnection();
    String query = "SELECT submitter, report FROM bugs_log ORDER BY id DESC limit ?";
    try(PreparedStatement ps = con.prepareStatement(query)) {
        ps.setInt(1, amount);
    }
}

Ответ 2

Положите? в желаемом месте переменной. Затем из этого API вызовите метод set для типа переменной.

http://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html

В вашем случае вам нужен int, поэтому вызовите ps.setInt(1,x). Если вам нужно несколько переменных, или в терминах SQL "параметр" - просто используйте несколько ?. Для методов setprementStatement требуется индекс параметров. Максимальный индекс равен количеству ?, которое у вас есть в вашем запросе.