我如何正确准备 JDBC PreparedStatement?

How I properly prepare JDBC PreparedStatment?

我开始使用我自己的 Minecraft 插件。我需要数据库连接才能这样做。我尝试执行查询,但遇到无法找到解决方案的错误。

这是我正在使用的函数代码:

public void checkIfUserExists(String login, Connection connection) {
    String query = "SELECT login FROM edvault.users WHERE login = ?";
    try {
        PreparedStatement statement = connection.prepareStatement(query);
        statement.setString(1, login);
        ResultSet rs = statement.executeQuery();
        if (!rs.next()){
            String query2 = "INSERT INTO edvault.users (login) VALUES ?";
            PreparedStatement statement2 = connection.prepareStatement(query2);
            statement2.setString(1 , login);
            int result = statement2.executeUpdate();
            if (result != 1){
                Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "<DBINFO> ERROR OCCURRED WHILE INSERTING NEW USER" +
                        " TO DATABASE");
            } else {
                Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "<DBINFO> ADDED NEW USER TO DATABASE : LOGIN - "+
                        login);
            }
        } else
            Bukkit.getConsoleSender().sendMessage("<DBINFO> USER ALREADY EXISTS IN DATABASE");
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

这里是控制台 returns 对我的例外情况(这是第一个查询的例外情况,登录名是 xEdziu):

[22:26:21] [Server thread/WARN]: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'xEdziu' in 'where clause'

替换

INSERT INTO edvault.users (login) VALUES ?

INSERT INTO edvault.users (login) VALUES (?)