java.sql.SQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本对应的手册

问题描述 投票:0回答:3

我使用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; 
java mysql prepared-statement
3个回答
0
投票
 ResultSet resultado = pstm.executeQuery(sql);

在上面的行中,您不需要再次传递

sql
字符串,因为它已经分配给
pstm
对象,并且使用
setString()

更新值

因此,该行可以重写为

ResultSet resultado = pstm.executeQuery();

0
投票

使用准备好的语句时,您需要调用

executeQuery
而不传递任何参数,所以

ResultSet resultado = pstm.executeQuery(); 

根据参数化版本的文档

注意:此方法不能在

PreparedStatement
CallableStatement
上调用。


0
投票

java.sql.SQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本对应的手册,了解在第 1 行 '' 附近使用的正确语法

我现在收到此错误,我正在使用 Statement 接口并调用执行更新函数

© www.soinside.com 2019 - 2024. All rights reserved.