Quando clico em editar deveria ir para o o método doPost(), executar a Query e redirecionar para uma página de visualização de todos os registros pelo comando "response.sendRedirect("http://localhost:8080/chamados/listar");", mais no lugar disso aparece a mensagem:
“Erro de conexão com o banco 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 ‘updade chamados set titulo=‘Teste’, conteudo=‘testando Chamados’ where id=1’ at line 1”
Gostaria de uma ajuda.
O código é esse:
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class EditarChamadoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
PrintWriter out = response.getWriter();
try {
Class.forName("com.mysql.jdbc.Driver");
try {
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/chamados_rlsystem", "root", "");
String sql = "select * from chamados where id=?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setInt(1, Integer.parseInt(request.getParameter("id")));
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
out.println("<html>");
out.println("<head>");
out.println("<title>Editar Chamado</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Editar Chamado</h1>");
out.println("<hr>");
out.println("<form method='post'>");
out.println("Codigo do Chamado:<br /> <input type='text' name='txtId' readonly='readonly' value='" + rs.getString("id") + "'/>");
out.println("<br />");
out.println("Titulo:<br /> <input type='text' name='txtTitulo' value='" + rs.getString("titulo") + "'/>");
out.println("<br />");
out.println("Conteúdo:<br /> <textarea cols='40' rows='10' name='txtConteudo'>" + rs.getString("conteudo") + "</textarea>");
out.println("<br />");
out.println("<input type='submit' value='Editar' />");
out.println("<br />");
out.println("</form>");
out.println("<a href='/listarChamados'>Listar Chamados</a>");
out.println("<br />");
out.println("<a href='http://localhost:8080/chamados/telaInicial'>Voltar</a>");
out.println("<br />");
out.println("<a href='/logoff'>Sair</a>");
out.println("<br />");
out.println("</body>");
out.println("</html>");
} else {
out.println("Este chamado não existe !!");
}
pstmt.close();
con.close();
} catch (SQLException e) {
out.println("Erro de conexão com o banco " + e.getMessage());
}
} catch (ClassNotFoundException ex) {
out.println("Erro ao carregar drive de conexão !!");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
try {
PrintWriter out = response.getWriter();
int id = Integer.parseInt(request.getParameter("txtId"));
String titulo = request.getParameter("txtTitulo");
String conteudo = request.getParameter("txtConteudo");
if (titulo.trim().length() < 3) {
out.println("Escreva no mínimo três caracteres no campo título");
} else if (conteudo.trim().length() < 3) {
out.println("Escreva no mínimo três caracteres no campo Conteúdo");
} else {
try {
Class.forName("com.mysql.jdbc.Driver");
try {
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/chamados_rlsystem", "root", "")
//O erro indica que a sintaxe dessa query não está correta
String sql = "updade chamados set titulo=?, conteudo=? where id=?";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, titulo);
stmt.setString(2, conteudo);
stmt.setInt(3, id);
stmt.execute();
stmt.close();
con.close();
response.sendRedirect("http://localhost:8080/chamados/listar");
} catch (SQLException e) {
out.println("Erro de conexão com o banco " + e.getMessage());
}
} catch (ClassNotFoundException ex) {
out.println("Erro ao carregar drive de conexão !!");
}
}
} catch (IOException e) {
}
}
}
Obrigado desde já pela atenção !!