【发布时间】:2021-12-11 05:41:55
【问题描述】:
当我尝试通过 java 应用程序在 MySQL 上运行 SELECT 时,我收到了语法错误的消息。
已尝试在 MySQL Workbench 上运行此查询,并且运行正常。
错误:
java.sql.SQLSyntaxErrorException:您的 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;
}
}
【问题讨论】:
标签: java mysql select jdbc prepared-statement