14

How do you insert variables into an SQL Query?

This is what I have so far ...

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 ))
}

I'm trying to get "amount" bugs to list. So if I input 2, then only the top 2 will get listed.

2 Answers 2

11

Try this code:

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);
    }
}
Sign up to request clarification or add additional context in comments.

2 Comments

While seemingly correct, I can't say I'm a fan of this answer because it doesn't use try-with-resources where that language construct fits perfectly (and the OP uses it).
@Vulcan My company was using Java 6 until like 2 weeks ago...we finally upgraded to Java 7 but let's just say I've been writing code which would compile when Jay Gosling was still a young man.
2

Put a ? at the desired variable location. Then, from this API, call the set method for the variable type.

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

In your case you want an int, so call ps.setInt(1,x). If you want multiple variables, - or in SQL terms a "parameter" - , just use multiple ?'s. The PreparedStatement setter methods requires the parameters index. The max index is equal to the amount of ?'s you have in your query.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.