我使用MySQL,为什么错误信息中是MariaDB?我尝试过替换参数`?通过已知的值并且它起作用了。问题在于 “?”作为代码中参数 1 和 2 的占位符
try {
//THE ISSUE IS HERE!
String sql = "Select * From dusuario Where nome_usuario= ? and senha_usuario= ?";
PreparedStatement pstm = conn.prepareStatement(sql);
pstm.setString(1, usuarioDTO.getNome_usuario());
pstm.setString(2, usuarioDTO.getSenha_usuario());
ResultSet resultado = pstm.executeQuery(sql);
return resultado;
} catch (SQLException erro) {
JOptionPane.showMessageDialog(null, "Erro na classe UsuarioDao: "+ erro);
return null;
ResultSet resultado = pstm.executeQuery(sql);
在上面的行中,您不需要再次传递
sql
字符串,因为它已经分配给 pstm
对象,并且使用 setString()
更新值
因此,该行可以重写为
ResultSet resultado = pstm.executeQuery();
executeQuery
而不传递任何参数,所以
ResultSet resultado = pstm.executeQuery();
根据参数化版本的文档:
注意:此方法不能在
或PreparedStatement
上调用。CallableStatement
java.sql.SQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本对应的手册,了解在第 1 行 '' 附近使用的正确语法
我现在收到此错误,我正在使用 Statement 接口并调用执行更新函数