>
Estou com o seguinte problema... Seguindo a vídeo-aula de Java, mais precisamente em JSP e Servlets online (Java EE), na vídeo-aula 7 CRUD Final Chamados (atualizar, editar, exibir) - CRUD parte 2, ao clicar no botão, link [EDITAR] aparecendo a seguinte mensagem:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ? at line 1
Segue abaixo os meus código, copiados da vídeo-aula do Rafael...
String SQL = SELECT * FROM chamado WHERE id = ?;
Olá Gustavo
Pode postar seu código?
public class EditarChamadoServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse res) throws ServletException, IOException {
PrintWriter out = res.getWriter();
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/chamados", "root", "");
String SQL = "SELECT * FROM chamado WHERE id = ?";
PreparedStatement pstm = conn.prepareStatement(SQL);
pstm.setInt(1, Integer.parseInt(request.getParameter("id")));
ResultSet rs = pstm.executeQuery(SQL);
if (rs.next()){
out.println("");
out.println("");
out.println("Editar Chamdos ");
out.println("");
out.println("");
out.println("");
out.println("Preencha as informações do chamado
");
out.println("
");
out.println("");
out.println("
");
out.println("Listar Chamado");
out.println("Sair");
out.println("");
out.println("");
}
pstm.close();
conn.close();
} catch (SQLException e) {
out.println("Problema no banco de dados " e.getMessage());
} catch (ClassNotFoundException ex){
out.println("Problema ao carregar driver de conexão");
}
}
Olá
A tabela é chamado ou chamados?
E no pstm.executeQuery(SQL);
Você não pode rodar direto o SQL, precisa passar ali o teu Prepared Statement. Peço que reveja esta aula novamente.
O nome do banco é chamados
E o nome da tabela é chamado.
String SQL = "SELECT * FROM chamado WHERE id = ?";
PreparedStatement pstm = conn.prepareStatement(SQL);
Gustavo
Faça um teste, retire o parâmetro em baixo e o ?
Veja o que acontece
Desculpe, não entendi.
Me dê um exemplo de o que você está sugerindo.
Olá
Mude isso:
String SQL = "SELECT * FROM chamado WHERE id = ?";
PreparedStatement pstm = conn.prepareStatement(SQL);
pstm.setInt(1, Integer.parseInt(request.getParameter("id")));
String SQL = "SELECT * FROM chamado";
PreparedStatement pstm = conn.prepareStatement(SQL);