将变量插入Java的SQL查询中

时间:2015-07-20 03:17:50

标签: java mysql

如何将变量插入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,那么只会列出前2名。

2 个答案:

答案 0 :(得分:11)

试试这段代码:

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

答案 1 :(得分:2)

放一个?在期望的变量位置。然后,从此API中,为变量类型调用set方法。

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

在你的情况下,你想要一个int,所以调用ps.setInt(1,x)。如果你想要多个变量,或者在SQL术语中需要一个"参数" - ,只需使用多个?即可。 PreparedStatement setter方法需要参数index。最大索引等于查询中?的数量。