>

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.



Erro Banco de dados JEE -JSP SERVLETS Aula 6 - Cadastrando novos chamados


Estou com um Erro de banco de dados ao cadastrar um novo chamado que é:

Problema no Banco de dados 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

MEU CÓDIGO ESTA ASSIM


import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class NovoChamadoServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

try {
PrintWriter out = response.getWriter();
out.println("");
out.println("");
//-------------TITULO DA PAGINA-----------
out.println("Novo Chamado");
out.println("");
out.println("");
//------------INICIO DA PAGINA-------------
out.println("

Preencha as Informações do chamado

");
out.println("
");

//--------------FORMULARIO-----------------
out.println("
");
out.println("Título:
");
out.println("
");
out.println("Conteúdo :
");
out.println("
");
out.println("");
out.println("
");

//--------------LINKS-----------------------
out.println("
");
out.println(" Novo Chamado ");
out.println("
");
out.println(" Listar Chamados ");
out.println("
");
out.println(" Sair ");

out.println("");
out.println("");

} catch (IOException e) {
e.printStackTrace();
}
}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
String titulo = request.getParameter("txtTitulo");
String conteudo = request.getParameter("txtConteudo");

if(titulo.equals("") && titulo.trim().length() < 3){
out.println("Campo Título fora do Padrão!");
}
else if(conteudo.equals("") && conteudo.trim().length() < 3){
out.println("Campo Conteúdo fora do Padrão!");
}
else {
try {
//Busca a classe do drive de conexao com mysql
Class.forName("com.mysql.jdbc.Driver");
//-------------------------------MODELO 1-----------------------------------------
//String SQL = "INSERT INTO chamados (titulo, conteudo) VALUES (";
//SQL += " '" + titulo + "', '"+ conteudo+"' ) " ;
//--------------------------------------------------------------------------------

//-------------------------------MODELO 2-----------------------------------------
String SQL = "INSERT INTO Chamados(titulo, conteudo) values (?, ?)";
//--------------------------------------------------------------------------------
try {

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/AulaJavaWEB", "root", "123qwe");
//-------------------------------MODELO 1-----------------------------------------
//Statement stm = conn.createStatement();
//stm.execute(SQL);
//stm.close();

//-------------------------------MODELO 2----------------------------------------
PreparedStatement pstm = conn.prepareStatement(SQL);

pstm.setString(1, titulo);
pstm.setString(2, conteudo);
pstm.execute(SQL);

pstm.close();
//--------------------------------------------------------------------------------
conn.close();

} catch (SQLException e) {
out.println("Problema no Banco de dados " + e.getMessage());
}
} catch (ClassNotFoundException e) {

out.println("Problema ao Carregar o Driver de Conexão!");
}
}
}
}



1 Resposta


Com o Decorrer de outras aulas acabei encontrando o Erro
Acabei passando um parametro no pstm.execute(); sem querer


pstm.execute(SQL);


executando a query INSERT INTO Chamados(titulo, conteudo) values (?, ?) causando erro de syntax.