JDBC Mysql SELECT错误语法错误



当我试图通过java应用程序在MySQL上运行SELECT时,我得到了语法错误的消息。

已经尝试在MySQL工作台上运行这个查询,它正常工作。

错误:

java.sql。sqlsyntaxerroreexception: SQL语法错误;检查与MySQL服务器版本对应的手册,以获得正确的语法来使用'?第1行

这是我的代码:

try {
String sql = "SELECT CPF_USUARIO, NOME_USUARIO, LOGIN, "
+ "DATA_NASCIMENTO, EMAIL, CELULAR_USUARIO, "
+ "DATA_CADASTRO, HORA_CADASTRO, GENERO "
+ "FROM TICKETERIA.TB_USUARIO "
+ "WHERE CPF_USUARIO = ?;";

pstmt = conn.prepareStatement(sql);
pstmt.setLong(1, cpfUsuario);
System.out.println(pstmt);
ResultSet rs = pstmt.executeQuery(sql);
Usuario usuarioResult = null;

while(rs.next()) {
usuarioResult = new Usuario();
usuarioResult.setCpfUsuario(rs.getLong("CPF_USUARIO"));
usuarioResult.setNomeUsuario(rs.getString("NOME_USUARIO"));
usuarioResult.setLogin(rs.getString("LOGIN"));
usuarioResult.setEmail(rs.getString("EMAIL"));
usuarioResult.setCelular(rs.getString("CELULAR"));
usuarioResult.setGeneroUsuario(rs.getString("GENERO"));
usuarioResult.setHoraCadastroStr(rs.getString("HORA_CADASTRO"));

Date dataAux = rs.getDate("DATA_NASCIMENTO");
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
usuarioResult.setNascimentoStr(df.format(dataAux));

dataAux = rs.getDate("DATA_CADASTRO");
usuarioResult.setDataCadastroStr(df.format(dataAux));
}
return usuarioResult;
} catch (SQLException e) {
e.printStackTrace(System.err);
System.err.println("SQLState: " + ((SQLException) e).getSQLState());
System.err.println("Error Code: " + ((SQLException) e).getErrorCode());
System.err.println("Message: " + e.getMessage());
Throwable t = e.getCause();
while (t != null) {
System.out.println("Cause: " + t);
t = t.getCause();
}
return null;
}
} 

正确的呼叫是.executeQuery();。没有参数。你要求db执行文字查询,WITH

最新更新