[RESOLVIDO] Problemas com o retornar de registros a um textField

10 respostas
grandao2014

Pessoal estou com um problema na minha aplicação, estou usando o netbeans, mas não consigo trazer as informações do banco de dados mysql e mostrar em um textField.
Vou mostrar o meu código.

//Esta é a parte da minha aplicação do AlunoDAO.

public Aluno pesquisa(Integer id){

Aluno aluno = new Aluno();
            String sql = "SELECT * FROM aluno WHERE aluno_id = ?;";
            
            try {
		
		java.sql.PreparedStatement stmt = connection.prepareStatement(sql);

		stmt.setInt(1, id);
		ResultSet rs = stmt.executeQuery(sql);
                    
                        if (rs.first()) {

			aluno.setId(rs.getInt("aluno_id"));
			aluno.setNome(rs.getString("aluno_nome"));
			aluno.setLogradouro(rs.getString("aluno_logradouro"));
			aluno.setBairro(rs.getString("aluno_bairro"));
			aluno.setNumero(rs.getString("aluno_numero"));
			aluno.setFone(rs.getString("aluno_fone"));
			

                        } else {
			throw new SQLException("Registro não localizado (chave primária inexistente)!");
                        }
            }catch(SQLException e){
                    throw new RuntimeException(e);
            }
         return aluno;
    }

//E esta é a parte onde quero mostrar no textField.

//Implementar PESQUISA;

Aluno alunos = new Aluno();

AlunoDAO dao = new AlunoDAO();

Integer numero = Integer.parseInt(textField1.getText());

dao.pesquisa(numero);

textField2.getText();

textField3.getText();

textField4.getText();

textField5.getText();

textField6.getText();

Desde já agradeço a quem responder.

10 Respostas

K

Nao seria o caso de voce fazer assim:

//E esta é a parte onde quero mostrar no textField. 

//Implementar PESQUISA; 
Aluno alunos = new Aluno(); 
AlunoDAO dao = new AlunoDAO(); 
Integer numero = Integer.parseInt(textField1.getText()); 

//passando  o objeto alunos como parametro
dao.pesquisa(alunos); 

textField2.setText( alunos.getNome ); 
textField3.getText(alunos.getLogradouro); 
textField4.getText(alunos.getBairro); 
textField5.getText(alunos.getNumero); 
textField6.getText(alunos.getFone);


//sua pesquisa ficaria assim

public void pesquisa( Alunos aluno){ 


String sql = "SELECT * FROM aluno WHERE aluno_id = "+aluno.getId+";"; 

try { 

java.sql.PreparedStatement stmt = connection.prepareStatement(sql); 


ResultSet rs = stmt.executeQuery(sql); 

if (rs.first()) { 

aluno.setId(rs.getInt("aluno_id")); 
aluno.setNome(rs.getString("aluno_nome")); 
aluno.setLogradouro(rs.getString("aluno_logradouro")); 
aluno.setBairro(rs.getString("aluno_bairro")); 
aluno.setNumero(rs.getString("aluno_numero")); 
aluno.setFone(rs.getString("aluno_fone")); 

}catch(SQLException e){ 
throw new RuntimeException(e); 
} 

}

Nao sei muito bem posso estar totalmente errado fica a dica e aberto a correções.
Vlw

grandao2014

Continua com o mesmo problema, mas acho que não deve ser void, ele tem que retornar algo. Mas valeu pela tentativa em seu comentário tirei uma dúvida que eu tinha no meu código.
Estou tentando usar em mdo CRUD. Os botões Salvar, Deletar e Limpar estão funcionando. Falta mesmo só Pesquisar e Listar, mas só quero Listar depois que conseguir pesquisar.

R

Você deu algumas bobeiras de OO.
Mas veja agora se funciona....

//Esta é a parte da minha aplicação do AlunoDAO.

public Aluno pesquisa(Integer id){

Aluno aluno = new Aluno();
String sql = "SELECT * FROM aluno WHERE aluno_id = ?;";

try {

java.sql.PreparedStatement stmt = connection.prepareStatement(sql);

stmt.setInt(1, "aluno_id");
ResultSet rs = stmt.executeQuery(sql);

if (rs.first()) {

aluno.setId(rs.getInt("aluno_id"));
aluno.setNome(rs.getString("aluno_nome"));
aluno.setLogradouro(rs.getString("aluno_logradouro"));
aluno.setBairro(rs.getString("aluno_bairro"));
aluno.setNumero(rs.getString("aluno_numero"));
aluno.setFone(rs.getString("aluno_fone"));


} else {
throw new SQLException("Registro não localizado (chave primária inexistente)!");
}
}catch(SQLException e){
throw new RuntimeException(e);
}
return aluno;
}

//E esta é a parte onde quero mostrar no textField.

//Implementar PESQUISA;
Aluno alunos = new Aluno();
AlunoDAO dao = new AlunoDAO();
Integer numero = Integer.parseInt(textField1.getText());
alunos = dao.pesquisa(numero);
textField2.setText(alunos.getNome());
textField3.setText(alunos.getLogradouro());
textField4.setText(alunos.getBairro());
textField5.setText(alunos.getNumero());
textField6.setText(alunos.getFone());
grandao2014

Continua dando erro.
Mas agora nesta linha: stmt.setInt(1, “aluno_id”);

R

grandao2014:
Continua dando erro.
Mas agora nesta linha: stmt.setInt(1, “aluno_id”);

Mancada minha… (FIZ CONFUSÃO COM SETPARAMETER do JPA)

stmt.setInt(1, id);
grandao2014

Com a linha assim:

stmt.setInt(1, id);

O código apresenta o seguinte ERRO:

Você tem um erro em sua sintaxe SQL; verifique o manual que corresponde ao seu servidor MySQL versão para o direito de utilizar sintaxe próximo ‘?’ na linha 1

R

grandao2014:
Com a linha assim:

stmt.setInt(1, id);

O código apresenta o seguinte ERRO:

Você tem um erro em sua sintaxe SQL; verifique o manual que corresponde ao seu servidor MySQL versão para o direito de utilizar sintaxe próximo ‘?’ na linha 1

Hm…
Inverta isso aki… e tente de novo!

ResultSet rs = stmt.executeQuery(sql);
stmt.setInt(1, id);
grandao2014

Dá o mesmo erro.

R

Devia estar funcionando…

Tire o “ponto e virgula” da sql. E a coluna aluno_id existe na tabela aluno e é do tipo number?

grandao2014

Pessoal estava lendo um material que achei na internet e fiz esta modificação:

public Aluno findById(Integer id){

No lugar de pesquisa coloquei FindById e funcionou normalmente. Tive uma ideia por alto mas quero informar-me mais sobre isso.
Mas resolvei o problema, agora é só entender.

Muito obrigado a todos que responderam.

Criado 7 de julho de 2012
Ultima resposta 10 de jul. de 2012
Respostas 10
Participantes 3