Boa tarde, 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>");
}
}
}
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>");
}
}
}