Olá, Pessoal.
Alguém poderia corrigir essas duas classes, por favor, pois não estou conseguindo identificar o erro e não sei se a minha lógica esta correta. Pois ao fazer a pesquisa por nome é apresentada a seguinte mensagem.
Erro: Java. lang.NumberFormatException: for input string e na pesquisa pelo RA não traz nada.
----------------------------------------------------------------------------------------------------------------------------------package br.com.mcsjava.model; import java.sql.*; import java.util.*; public class AlunoDAO { private Connection con = null; public AlunoDAO() { FabricaConexao fab = new FabricaConexao(); con = fab.abreConexao(); if (con == null) System.out.println("Erro ao conectar!"); } public boolean gerencia(AlunoTO dados, int oper){ try{ String comando = null; if (oper == 1) comando = "INSERT INTO TbAluno (Nome, Curso, RA) VALUES (?, ?, ?)"; else if (oper == 2) comando = "UPDATE TbAluno SET Nome = ?, Curso = ? WHERE RA = ?"; else if (oper == 3) comando = "DELETE FROM TbAluno WHERE RA = ?"; PreparedStatement stm = con.prepareStatement(comando); if (oper == 3) stm.setInt(1, dados.getRa()); else { stm.setString(1, dados.getNome()); stm.setString(2, dados.getCurso()); stm.setInt (3, dados.getRa()); } return !stm.execute(); }catch(SQLException erro){ return false; } } public boolean gerenciaConsulta(AlunoTO dados, int oper) throws SQLException{ try{ String comando = null; if (oper == 1) comando = "SELECT * FROM TbAluno WHERE RA = ?"; else if (oper == 2) comando = "SELECT * FROM TbAluno WHERE NOME LIKE ?"; PreparedStatement stm = con.prepareStatement(comando); ResultSet resultado = stm.executeQuery(); if (oper == 1){ stm.setInt(1, dados.getRa()); if (resultado.next()){ dados.setNome (resultado.getString("Nome")); dados.setCurso(resultado.getString("Curso")); return true; }else return false; }else{ stm.setString(1, dados.getNome()); stm.setString(2, dados.getCurso()); stm.setInt (3, dados.getRa()); if (resultado.next()){ dados.setNome (resultado.getString("Nome")); dados.setCurso(resultado.getString("Curso")); return true; }else return false; } }catch(SQLException erro){ return false; } } }
package br.com.mcsjava.servlet; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import br.com.mcsjava.model.*; public class AlunoServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); String mensagem = ""; try { AlunoTO aluno = new AlunoTO(); aluno.setRa(Integer.parseInt(request.getParameter( "txt_ra"))); aluno.setNome(request.getParameter("txt_nome")); aluno.setCurso(request.getParameter("txt_curso")); int operacao = Integer.parseInt(request.getParameter("operacao")) ; AlunoDAO comando = new AlunoDAO(); if(operacao != 4){ boolean sucesso = comando.gerencia(aluno, operacao); if(sucesso) mensagem = "<font color = '#006699'>Operação OK!</font>"; else mensagem = "<font color = '#FF0000'>Erro na Operação</font>"; } else{ boolean sucesso = comando.gerenciaConsulta(aluno, operacao); if(aluno == null) mensagem = "<font color = '#FF0000'>Aluno Inexistente!</font>"; else{ RequestDispatcher rd = request.getRequestDispatcher("CadastroAluno.jsp"); request.setAttribute("dados", aluno); rd.forward(request, response); } } } catch(Exception erro) { mensagem = "<font color = '#FF0000'>Erro: " +erro+ "</font>"; } finally{ out.println("<br><center><h1>" +mensagem+ "</h1></center>"); out.println("<script>setTimeout('history.back()',3 000);</script>"); } } }