>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Não estou conseguindo salvar dados no banco de dados com uma função em meu servlet.



protected void doPost(HttpServletRequest request, HttpServletResponse response) {
try {
PrintWriter out = response.getWriter();

String titulo = request.getParameter("titulo");
String conteudo = request.getParameter("mensagem");

if (titulo.trim().length() < 4) {
out.println("Preencha o titulo!");
} else if (conteudo.trim().length() < 4) {
out.println("Preencha a mensagem!");
} else {
try {

Class.forName("com.mysql.jdbc.Driver");

String SQL = "INSERT INTO chamados (titulo, conteudo) VALUES (?, ?)";
try {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/chamados_rlsystem",
"root", "");
PreparedStatement pstm = conn.prepareStatement(SQL);
pstm.setString(1, titulo);
pstm.setString(2, conteudo);
pstm.execute(SQL);
pstm.close();
conn.close();
} catch (Exception e) {
out.println("Problema no banco de dados. "+ e.getMessage());
}
} catch (Exception e) {
out.println("Problema ao carregar o drive de conexão.");
}
}

} catch (IOException e) {
}

}


toda vez que tento salvar me retorna o seguinte erro: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '?, ?)' at line 1.



1 Resposta


Pessoal consegui resolver meu problema e descobrir o erro!

o erro estava em:

pstm.execute(SQL);

Você deve executar o PrepareStatement sem parâmetros como segue:

pstm.execute();