Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JDBC试图使用null参数从MySQL数据库检索salt_Java_Mysql_Sql_Jdbc - Fatal编程技术网

Java JDBC试图使用null参数从MySQL数据库检索salt

Java JDBC试图使用null参数从MySQL数据库检索salt,java,mysql,sql,jdbc,Java,Mysql,Sql,Jdbc,我有一个JDBC方法从用户检索salt,以便在登录时验证用户 以下是我的方法: public static byte[] getSaltMethod(String username) throws SQLException, LoginSampleException { try { Connection con = Connector.connection(); String SQL = "SELECT salt FROM users WHERE

我有一个JDBC方法从用户检索salt,以便在登录时验证用户

以下是我的方法:

 public static byte[] getSaltMethod(String username) throws SQLException, LoginSampleException {

    try {

        Connection con = Connector.connection();

        String SQL = "SELECT salt FROM users WHERE email = '?'";

        PreparedStatement statement = con.prepareStatement(SQL);
        statement.setString(1, username);


        ResultSet set = statement.executeQuery();

        while (set.next()) {

            byte[] salt = set.getBytes("salt");

            /* jeg er i tivil om denne skal være her*/

            return salt;
        }

    } catch (SQLException ex) {
        Conf.MYLOGGER.log(Level.SEVERE, null, ex);
        throw new LoginSampleException(ex.getMessage());
    }
    return null;

}
}
我已使用调试器尝试识别问题,并收到此错误消息

"Parameter index out of range (1 > number of parameters, which is 0)."

我尝试过使用和不使用参数周围的'around',但它会给我一个语法错误。

您的SQL不应该在参数周围包含
'
(绑定)字符

用户将自动添加字符

将SQL更改为:

  String SQL = "SELECT salt FROM users WHERE email = ?";

不要将
放在单引号之间每当我这样做时,我都会收到一个语法错误,如果我把这个字符串放在MySQL workbench中,它会返回salt,就像它应该返回的一样,但是如果没有单引号,我会收到一个语法错误,您会得到什么语法错误?字段列表中的未知列“salt”