Problema de cadastro básico com JSP

22 respostas
Galego_Henrique

Estou apdendendo JSP, mas está tendo uns empecilhos em uma atividade que estou fazendo, gostaria de saber em que se refere o erro.

Erro:
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 14 in the jsp file: /cadastro.jsp
The method getParameter(String) in the type ServletRequest is not applicable for the arguments (int)
11: 		 aluno.setNome(request.getParameter("nome"));
12: 		 aluno.setMatricula(request.getParameter("matricula"));
13: 		 
14: 		 fone.setIdTelefone(request.getParameter(codfone));
15: 		 
16: 		 aluno.setTelefone(fone);
17: 		 


Stacktrace:
	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.
Código:
<%@ page import="dao.Aluno"%>
<%@ page import="dao.Telefone"%>
<%@ page import="dao.AlunoDAO"%>

<%   String nome;
     String matricula;  
         int codfone;
         Aluno aluno = new Aluno();
		 Telefone fone = new Telefone();
		 
		 aluno.setNome(request.getParameter("nome"));
		 aluno.setMatricula(request.getParameter("matricula"));
		 
		 fone.setIdTelefone(request.getParameter(codfone));
		 
		 aluno.setTelefone(fone);
		 
		 AlunoDAO dao = new AlunoDAO();
		 		
		 if(dao.inserir(aluno))
		 out.print("Gravou");
		  else
		  out.print("Não gravou");
%>

22 Respostas

Galego_Henrique

Alterei o código, na parte do IdTelefone:

Código:
<%@ page import="dao.Aluno"%>
<%@ page import="dao.Telefone"%>
<%@ page import="dao.AlunoDAO"%>

<%   String nome;
     String matricula;  
         int codfone;
         Aluno aluno = new Aluno();
		 Telefone fone = new Telefone();
		 
		 aluno.setNome(request.getParameter("nome"));
		 aluno.setMatricula(request.getParameter("matricula"));
		 
		 fone.setIdTelefone(Integer.parseInt(request.getParameter("codfone")));
		 
		 aluno.setTelefone(fone);
		 
		 AlunoDAO dao = new AlunoDAO();
		 		
		 if(dao.inserir(aluno))
		 out.print("Gravou");
		  else
		  out.print("Não gravou");
%>

Mas agora está dando outro erro.

Erro:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /cadastro.jsp at line 14

11: 		 aluno.setNome(request.getParameter("nome"));
12: 		 aluno.setMatricula(request.getParameter("matricula"));
13: 		 
14: 		 fone.setIdTelefone(Integer.parseInt(request.getParameter("codfone")));
15: 		 
16: 		 aluno.setTelefone(fone);
17: 		 


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.lang.NumberFormatException: null
	java.lang.Integer.parseInt(Unknown Source)
	java.lang.Integer.parseInt(Unknown Source)
	org.apache.jsp.cadastro_jsp._jspService(cadastro_jsp.java:69)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.
romarcio

Conforme a exceção lançada, o problema é esse:

The method getParameter(String) in the type ServletRequest is not applicable for the arguments (int)
Phelps

Provavelmente é o cast no setIdTelefone, tem certeza que o método recebe o tipo enviado?
Tente fazer o cast no método!

Galego_Henrique

romarcio:
Conforme a exceção lançada, o problema é esse:

The method getParameter(String) in the type ServletRequest is not applicable for the arguments (int)

Já tentei convertendo e não convertendo, mas não funciona.

Galego_Henrique

Provavelmente é o cast no setIdTelefone, tem certeza que o método recebe o tipo enviado?
Tente fazer o cast no método!

Falou grego pra mim. kkk

romarcio

Conforme seu 2° post, o erro é diferente do primeiro que eu tinha comentado:

java.lang.NumberFormatException: null

Parece que o numero de telefone está chegando com valor null e dai quando você tenta fazer essa conversão: Integer.parseInt(), é lançada a exceção.

Galego_Henrique
Fiz essa modificação, funcionou, mas é totalmente fora do que o professor havia mostrado, porém ele não estava conseguindo me ajudar... rsrs. Na linha 07, eu mudei o formato, não sei se é permitido.
<%@ page import="dao.Aluno"%>
<%@ page import="dao.Telefone"%>
<%@ page import="dao.AlunoDAO"%>

<%   String nome;
     String matricula;  
         Telefone codfone = new Telefone();
         Aluno aluno = new Aluno();
		 Telefone fone = new Telefone();
		 
		 aluno.setNome(request.getParameter("nome"));
		 aluno.setMatricula(request.getParameter("matricula"));
		 
		 fone.setIdTelefone(request.getParameter("codfone"));
		 
		 aluno.setTelefone(fone);
		 
		 AlunoDAO dao = new AlunoDAO();
		 		
		 if(dao.inserir(aluno))
		 out.print("Gravou");
		  else
		  out.print("Não gravou");
%>

Agora não estou conseguindo gravar no banco de dados.

romarcio

E qual o erro lançado agora?

Eu acho que você não consegue gravar porque o valor deve estar chegando null ainda.

Faz esse teste para confirmar.
&lt;%@ page import="dao.Aluno"%&gt;
&lt;%@ page import="dao.Telefone"%&gt;
&lt;%@ page import="dao.AlunoDAO"%&gt;

&lt;%   String nome;
     String matricula;  
         Telefone codfone = new Telefone();
         Aluno aluno = new Aluno();
		 Telefone fone = new Telefone();
		 
		 aluno.setNome(request.getParameter("nome"));
		 aluno.setMatricula(request.getParameter("matricula"));
		 
		 fone.setIdTelefone(request.getParameter("codfone"));
		 
                 out.print(fone.getIdTelefone()); //veja se o valor é diferente de null

		 aluno.setTelefone(fone);
		 
		 AlunoDAO dao = new AlunoDAO();
		 		
		 if(dao.inserir(aluno))
		 out.print("Gravou");
		  else
		  out.print("Não gravou");
%&gt;
Galego_Henrique
romarcio:
E qual o erro lançado agora?

Eu acho que você não consegue gravar porque o valor deve estar chegando null ainda.

Faz esse teste para confirmar.
&lt;%@ page import="dao.Aluno"%&gt;
&lt;%@ page import="dao.Telefone"%&gt;
&lt;%@ page import="dao.AlunoDAO"%&gt;

&lt;%   String nome;
     String matricula;  
         Telefone codfone = new Telefone();
         Aluno aluno = new Aluno();
		 Telefone fone = new Telefone();
		 
		 aluno.setNome(request.getParameter("nome"));
		 aluno.setMatricula(request.getParameter("matricula"));
		 
		 fone.setIdTelefone(request.getParameter("codfone"));
		 
                 out.print(fone.getIdTelefone()); //veja se o valor é diferente de null

		 aluno.setTelefone(fone);
		 
		 AlunoDAO dao = new AlunoDAO();
		 		
		 if(dao.inserir(aluno))
		 out.print("Gravou");
		  else
		  out.print("Não gravou");
%&gt;

Cara, achei que tinha resolvido o erro, mas ainda está dando erro por causa de formato.

Erro:
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 14 in the jsp file: /cadastro.jsp
The method parseint(String) is undefined for the type Integer
11: 		 aluno.setNome(request.getParameter("nome"));
12: 		 aluno.setMatricula(request.getParameter("matricula"));
13: 		 
14: 		 fone.setIdTelefone(Integer.parseint(request.getParameter("codfone")));
15: 		 
16: 		 out.print(fone.getIdTelefone());
17: 		 


Stacktrace:
	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.
Código
&lt;%@ page import="dao.Aluno"%&gt;
&lt;%@ page import="dao.Telefone"%&gt;
&lt;%@ page import="dao.AlunoDAO"%&gt;

&lt;%   String nome;
     String matricula;  
         int codfone;
         Aluno aluno = new Aluno();
		 Telefone fone = new Telefone();
		 
		 aluno.setNome(request.getParameter("nome"));
		 aluno.setMatricula(request.getParameter("matricula"));
		 
		 fone.setIdTelefone(Integer.parseint(request.getParameter("codfone")));
		 
		 out.print(fone.getIdTelefone());
		 
		 aluno.setTelefone(fone);
		 
		 AlunoDAO dao = new AlunoDAO();
		 		
		 if(dao.inserir(aluno))
		 out.print("Gravou");
		  else
		  out.print("Não gravou");
%&gt;
romarcio

Faz assim:

&lt;%@ page import="dao.Aluno"%&gt;
&lt;%@ page import="dao.Telefone"%&gt;
&lt;%@ page import="dao.AlunoDAO"%&gt;

&lt;%   String nome;
     String matricula;  
         Aluno aluno = new Aluno();
		 Telefone fone = new Telefone();
		 
		 aluno.setNome(request.getParameter("nome"));
		 aluno.setMatricula(request.getParameter("matricula"));
		 
		 String codFone = request.getParameter("codfone");
		 
		 if (codFone != null || !codFone.isEmpty()) {
			fone.setIdTelefone(Integer.parseint(codFone)));
					 
			aluno.setTelefone(fone);
		 }
		 
		 AlunoDAO dao = new AlunoDAO();
		 		
		 if(dao.inserir(aluno))
		 out.print("Gravou");
		  else
		  out.print("Não gravou");
%&gt;
Galego_Henrique
romarcio:
Faz assim:
&lt;%@ page import="dao.Aluno"%&gt;
&lt;%@ page import="dao.Telefone"%&gt;
&lt;%@ page import="dao.AlunoDAO"%&gt;

&lt;%   String nome;
     String matricula;  
         Aluno aluno = new Aluno();
		 Telefone fone = new Telefone();
		 
		 aluno.setNome(request.getParameter("nome"));
		 aluno.setMatricula(request.getParameter("matricula"));
		 
		 String codFone = request.getParameter("codfone");
		 
		 if (codFone != null || !codFone.isEmpty()) {
			fone.setIdTelefone(Integer.parseint(codFone)));
					 
			aluno.setTelefone(fone);
		 }
		 
		 AlunoDAO dao = new AlunoDAO();
		 		
		 if(dao.inserir(aluno))
		 out.print("Gravou");
		  else
		  out.print("Não gravou");
%&gt;
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 16 in the jsp file: /cadastro2.jsp
The method parseint(String) is undefined for the type Integer
13:              String codFone = request.getParameter("codfone");  
14:                
15:              if (codFone != null || !codFone.isEmpty()) {  
16:                 fone.setIdTelefone(Integer.parseint(codFone)));  
17:                            
18:                 aluno.setTelefone(fone);  
19:              }  


An error occurred at line: 16 in the jsp file: /cadastro2.jsp
Syntax error on token ")", delete this token
13:              String codFone = request.getParameter("codfone");  
14:                
15:              if (codFone != null || !codFone.isEmpty()) {  
16:                 fone.setIdTelefone(Integer.parseint(codFone)));  
17:                            
18:                 aluno.setTelefone(fone);  
19:              }  


Stacktrace:
	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.
romarcio

Faz outro teste:

&lt;%@ page import="dao.Aluno"%&gt;
&lt;%@ page import="dao.Telefone"%&gt;
&lt;%@ page import="dao.AlunoDAO"%&gt;

&lt;%   String nome;
     String matricula;  
         Aluno aluno = new Aluno();
		 Telefone fone = new Telefone();
		 
		 aluno.setNome(request.getParameter("nome"));
		 aluno.setMatricula(request.getParameter("matricula"));
		 
		 String codFone = request.getParameter("codfone");
		 
		 if (codFone.length() &gt; 0) {
			fone.setIdTelefone(Integer.parseint(codFone)));
					 
			aluno.setTelefone(fone);
		 }
		 
		 AlunoDAO dao = new AlunoDAO();
		 		
		 if(dao.inserir(aluno))
		 out.print("Gravou");
		  else
		  out.print("Não gravou");
%&gt;

Outra coisa, sua variável idTelefone da classe telefone é mesmo um int ou Integer?
E você está digitando apenas números na interface gráfica no campo do telefone?

Galego_Henrique
romarcio:
Faz outro teste:
&lt;%@ page import=&quot;dao.Aluno&quot;%&gt;
&lt;%@ page import=&quot;dao.Telefone&quot;%&gt;
&lt;%@ page import=&quot;dao.AlunoDAO&quot;%&gt;

&lt;%   String nome;
     String matricula;  
         Aluno aluno = new Aluno();
		 Telefone fone = new Telefone();
		 
		 aluno.setNome(request.getParameter(&quot;nome&quot;));
		 aluno.setMatricula(request.getParameter(&quot;matricula&quot;));
		 
		 String codFone = request.getParameter(&quot;codfone&quot;);
		 
		 if (codFone.length() &gt; 0) {
			fone.setIdTelefone(Integer.parseint(codFone)));
					 
			aluno.setTelefone(fone);
		 }
		 
		 AlunoDAO dao = new AlunoDAO();
		 		
		 if(dao.inserir(aluno))
		 out.print(&quot;Gravou&quot;);
		  else
		  out.print(&quot;Não gravou&quot;);
%&gt;

Outra coisa, sua variável idTelefone da classe telefone é mesmo um int ou Integer?
E você está digitando apenas números na interface gráfica no campo do telefone?

O meu id é int, e no campo telefone é só número mesmo. Agora o código apareceu outro erro.

Erro:
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 16 in the jsp file: /cadastro2.jsp
The method parseint(String) is undefined for the type Integer
13:              String codFone = request.getParameter(&quot;codfone&quot;);  
14:                
15:              if (codFone.length() &gt; 0) {  
16:                 fone.setIdTelefone(Integer.parseint(codFone)));  
17:                            
18:                 aluno.setTelefone(fone);  
19:              }  


An error occurred at line: 16 in the jsp file: /cadastro2.jsp
Syntax error on token &quot;)&quot;, delete this token
13:              String codFone = request.getParameter(&quot;codfone&quot;);  
14:                
15:              if (codFone.length() &gt; 0) {  
16:                 fone.setIdTelefone(Integer.parseint(codFone)));  
17:                            
18:                 aluno.setTelefone(fone);  
19:              }  


Stacktrace:
	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.
Galego_Henrique

Agora fiz desta maneira:

<%@ page import="dao.Aluno"%>
<%@ page import="dao.Telefone"%>
<%@ page import="dao.AlunoDAO"%>

<%   String nome;
     String matricula;  
         int codfone;
         Aluno aluno = new Aluno();
		 Telefone fone = new Telefone();
		 
		 aluno.setNome(request.getParameter("nome"));
		 aluno.setMatricula(request.getParameter("matricula"));
		 
		 fone.setIdTelefone(Integer.parseInt(request.getParameter("codfone")));
		 
		 out.print(fone.getIdTelefone());
		 
		 aluno.setTelefone(fone);
		 
		 AlunoDAO dao = new AlunoDAO();
		 		
		 if(dao.inserir(aluno))
		 out.print("Gravou");
		  else
		  out.print("Não gravou");
%>

E estou usando este formulário html para preencher os dados:

<html>
 <body>
  <center>
   <h1>Cadastro de Alunos</h1>
    <form name = "formAluno" action="cadastro.jsp" method="post">
      <table>
        <tr>
          <td>Nome:</td> <td><input type="text" name="nome" id="nome"></td>
        </tr>
        <tr>
          <td>Matricula:</td> <td><input type="text" name="matricula" id="matricula"></td>
        </tr>     
        <tr>
          <td>Fone</td> <td><input type="text" name="codfone" id="codfone"></td>
        </tr>
      </table> </br></br>
                    <input type="submit" value="Cadastrar">   
  </center>
 </body>
</html>

Mas apareceu algo diferente, apareceu o número do telefone no qual eu digitei e a frase "Não gravou" em seguida. Exemplo "123456 Não gravou".

romarcio

Agora que reparei que nos códigos anteriores o método Integer.parseint() está errado, é Integer.parseInt(), com Int e não int.

Mas no seu último exemplo você corrigiu isso, por isso deve ter funcionado.

Agora o valor está chegando e sendo inserido na variável idTelefone, pelo que parece o problema é com o banco de dados agora ao que tudo indica.

Poste o seu método de insert no banco de dados.

Galego_Henrique

O erro está em volta do atributo fone do tipo Telefone, olha como está essa classe telefone, talvez o erro seja nela.

package dao;
public class Telefone
{
	private int idTelefone;
	private String numero;
	
	public void setIdTelefone(int idTelefone)
	{ this.idTelefone = idTelefone;	}
	
	public void setNumero(String numero)
	{ this.numero = numero; }
	
    public int getIdTelefone()
	{ return this.idTelefone; }
	
	public String getNumero()
	{ return this.numero;	}
}
romarcio

Parece ok.

Mas você está tentando inserir o idTelefone ou o numero? Lá na jsp você está setando o numero do telefone na variável idTelefone e acho que deveria ser em numero.

Galego_Henrique
romarcio:
Agora que reparei que nos códigos anteriores o método Integer.parseint() está errado, é Integer.parseInt(), com Int e não int.

Mas no seu último exemplo você corrigiu isso, por isso deve ter funcionado.

Agora o valor está chegando e sendo inserido na variável idTelefone, pelo que parece o problema é com o banco de dados agora ao que tudo indica.

Poste o seu método de insert no banco de dados.

É esse o código:

package dao;
import java.sql.*;
import java.util.List;
import java.util.ArrayList;
public class AlunoDAO
{   
    Connection Conn;
    Statement Stmt;
    ResultSet RS; 
 	public AlunoDAO()
	{
	  try
      {
        Class.forName("org.gjt.mm.mysql.Driver").newInstance();
        Conn = DriverManager.getConnection("jdbc:mysql://localhost/lp2","root","");
        Stmt = Conn.createStatement();
      }catch(Exception E){ E.printStackTrace();  }  
	}
	
	public boolean inserir(Aluno aluno)
	{   int x = 1;
	
		String query = "insert into aluno values (0,'"+aluno.getNome()+"','"+aluno.getMatricula()+"',"+aluno.getTelefone().getIdTelefone()+")";
		
		try {	
		x = Stmt.executeUpdate(query);
		
		}catch(Exception E){ E.printStackTrace();  }
		
		if(x == 0 ){ return true; } else { return false; }
				
	}
	
	public boolean apagar(Aluno aluno)				
	{
	    int x = 1;
	
		String query = "delete from aluno where codigo = "+aluno.getIdAluno();
		
		try {	
		x = Stmt.executeUpdate(query);
		
		}catch(Exception E){ E.printStackTrace();  }
		
		if(x == 0 ){ return true; } else { return false; }
	}
	
	public Aluno buscar(int idAluno) 
	{
		String query = "select * from aluno where codigo = "+idAluno;
		Aluno aluno = new Aluno();
		
		try {	
		RS = Stmt.executeQuery(query);
		RS.next();
				
		aluno.setIdAluno(RS.getInt(1));
		aluno.setNome(RS.getString(2));
		aluno.setMatricula(RS.getString(3));
		Telefone fone = new Telefone();
		fone.setIdTelefone(RS.getInt(4));
		aluno.setTelefone(fone); 
		
		}catch(Exception E){ E.printStackTrace();  }
		
		return aluno;
		
	}
	
	public List&lt;Aluno&gt; buscarTodos() 
	{
		String query = "select * from aluno";
		List&lt;Aluno&gt; alunos = new ArrayList&lt;Aluno&gt;();
		Aluno aluno;
		
		try {	
		RS = Stmt.executeQuery(query);
		while(RS.next())
		{
			aluno = new Aluno();		
		    aluno.setIdAluno(RS.getInt(1));
		    aluno.setNome(RS.getString(2));
		    aluno.setMatricula(RS.getString(3));
		    Telefone fone = new Telefone();
		    fone.setIdTelefone(RS.getInt(4));
		    aluno.setTelefone(fone); 
		    	
		    alunos.add(aluno);	
		}
		}catch(Exception E){ E.printStackTrace();  }
		
		return alunos;
		
	}
	
	public boolean alterar(Aluno aluno)
	{   int x = 1;
	
		String query = "UPDATE aluno SET nome = '"+aluno.getNome()+"', matricula = '"+aluno.getMatricula()+"', codfone = "+aluno.getTelefone().getIdTelefone()+" WHERE codigo = "+aluno.getIdAluno()+"";		
		try {	
		x = Stmt.executeUpdate(query);
		
		}catch(Exception E){ E.printStackTrace();  }
		
		if(x == 0 ){ return true; } else { return false; }
				
	}
	
}
Galego_Henrique

romarcio:
Parece ok.

Mas você está tentando inserir o idTelefone ou o numero? Lá na jsp você está setando o numero do telefone na variável idTelefone e acho que deveria ser em numero.

Estou tentando inserir o telefone através do idtelefone, estou pensando bem OO, por causa daquela história, vai que um dia muda o último número de todos os telefones celulares igual aconteceu em SP, torna mais fácil modificar.

Mas em suma, é justamente nela que está dando o pipino, essas exceções, só dando null.

Galego_Henrique

Parece que agora funcionou, todas aqueles momentos que aparecia “null” acredito que já estava ok, mas o problema que só aceita se for pelo formulário, rodando diretamente pelo JSP não funciona. Será por quê, isso?

romarcio

Ok, mas você está enviando o idTelefone para o banco ou o número do telefone? O que você digita na interface e manda para o método setIdTelefone()?

romarcio

Outra coisa:String query = "insert into aluno values (0,'"+aluno.getNome()+"','"+aluno.getMatricula()+"',"+aluno.getTelefone().getIdTelefone()+")";
Você vai inserir 0 como id aluno toda vez que fizer o insert?
O MySql é autoincrento de chave, dai não precisa setar o id na hora de fazer o insert.

Criado 20 de outubro de 2012
Ultima resposta 20 de out. de 2012
Respostas 22
Participantes 3