Oi pessoal…estou fazendo um projetinho em Java, e num dado momento vi a necessidade de usar um servlet para retornar os valores de uma consulta. Construi o servlet, mas o tomcat está acusando um erro no qual eu não consegui descobrir ainda a solução.
O erro é: java.sql.SQLException: Positioned Update not supported.
Vou postar abaixo o servlet caso alguem ache alguma coisa de errado …Obbrigado a todos.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.servlet.*;
import javax.servlet.http.*;
/**
*
* @author fvargas
*/
public class consulta extends HttpServlet {
private PreparedStatement ps_cliente;
private ResultSet rs_cliente;
private Connection conn_cliente;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
} finally {
out.close();
}
}
public void consultar(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String nome = request.getParameter("cliente");
String cod_cliente;
try {
Class.forName("com.mysql.jdbc.jdbc2.optional.MysqlDataSource");
conn_cliente = DriverManager.getConnection("jdbc:mysql://localhost:3306/lojacel", "root", "123");
ps_cliente = conn_cliente.prepareStatement("SELECT * FROM lojacel.clientes where clientes.nome like ?;");
ps_cliente.setString(1, nome);
rs_cliente = ps_cliente.executeQuery();
//Testando as variaveis
System.out.println("");
System.out.println("conn é: " + conn_cliente.getCatalog());
System.out.println("ps é : " + ps_cliente.toString());
System.out.println("rs é: " + rs_cliente.getCursorName());
System.out.println("Cliente é: " + nome);
rs_cliente.getString("nome");
System.out.println("rs agora é: " + rs_cliente);
System.out.println("");
response.sendRedirect("consulta.jsp");
if (rs_cliente.next()) {
cod_cliente = rs_cliente.getString("cod_cliente");
request.setAttribute("cod_cliente", cod_cliente);
response.sendRedirect("consulta.jsp");
rs_cliente.close();
ps_cliente.close();
conn_cliente.close();
} else {
System.out.println("Erro, cliente não encontrado!");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title> Erro </title>");
out.println("</head>");
out.println("<body>");
out.println("<center>");
//out.println("Cliente <b>" + cod_cliente + "</b> Inexistente!");
out.println("</center>");
out.println("</body>");
out.println("</html>");
}
} catch (Exception e) {
String erro = e.getMessage();
System.out.println("Erro: " + e.toString());
System.out.println("Erro: " + erro);
}
}
// <editor-fold defaultstate="collapsed" desc="Métodos HttpServlet. Clique no sinal de + à esquerda para editar o código.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
consultar(request, response);
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
//@Override
//public String getServletInfo() {
//return "Short description";
}// </editor-fold>
}