>
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("");
//--------------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!");
}
}
}
}
Com o Decorrer de outras aulas acabei encontrando o Erro
Acabei passando um parametro no pstm.execute(); sem querer
pstm.execute(SQL);