Problema a dois dias com jTextField e DAO

Olá estou com um problema a 2 dias e venho tentando resposta aqui para esse problema, mais não podia colocar o código por norma da empresa, consegui uma autorização para colocar o código parcial e principal, o problema como já citei anteriormente é que não consigo mostra o resultado da minha busca na minha jTextField e o código esta totalmente sem erros e exeções, estou começando agora a escrever códigos em camadas e meu código esta estruturado da seguindo forma:

Java Beans


public class Cliente{ 

private int codcliente; 
private String nome; 
private String rg; 
private String cpf; 
private String endereco; 
private String bairro; 
private String cidade; 
private String cep; 
private int uf; 
private String telefone; 
private String celular; 
private String email; 

public Cliente() { 

} 


public int getCodCliente(){ 
return this.codcliente; 
} 

public void setCodCliente(int codcliente){ 
this.codcliente = codcliente; 
} 

public String getNome(){ 
return this.nome; 
} 

public void setNome(String nome){ 
this.nome = nome; 
} 

public String getCpf(){ 
return this.cpf; 
} 

public void setCpf(String cpf){ 
this.cpf = cpf; 
} 

public String getRg(){ 
return this.rg; 
} 

public void setRg(String rg){ 
this.rg = rg; 
} 

public String getEndereco(){ 
return this.endereco; 
} 

public void setEndereco(String endereco){ 
this.endereco = endereco; 
} 

public String getBairro(){ 
return this.bairro; 
} 

public void setBairro(String bairro){ 
this.bairro = bairro; 
} 

public String getCep(){ 
return this.cep; 
} 

public void setCep(String cep){ 
this.cep = cep; 
} 

public String getCidade(){ 
return this.cidade; 
} 

public void setCidade(String cidade){ 
this.cidade = cidade; 
} 

public int getUf(){ 
return this.uf; 
} 

public void setUf(int uf){ 
this.uf = uf; 
} 

public String getTelefone(){ 
return this.telefone; 
} 

public void setTelefone(String telefone){ 
this.telefone = telefone; 
} 

public String getCelular(){ 
return this.celular; 
} 

public void setCelular(String celular){ 
this.celular = celular; 
} 

public String getEmail(){ 
return this.email; 
} 

public void setEmail(String email){ 
this.email = email; 
} 
} 

Tenho uma classe DAO

import java.sql.Connection; 
import java.sql.PreparedStatement; 
import java.sql.SQLException; 
import java.sql.ResultSet; 

public class ClienteDAO { 

// a conexão com o banco de dados 
private Connection connection; 

public ClienteDAO() throws SQLException { 
this.connection = ConnectionFactory.getConnection(); 
} 

public void cadastrar(Cliente cliente) throws SQLException { 

// prepared statement para inserção 
PreparedStatement stmt = this.connection.prepareStatement("insert into " + 
"cliente (codcliente,nomecliente,cpfcliente,rgcliente,enderecocliente," + 
"bairrocliente,cidadecliente,cepcliente,coduf,telefonecliente,celularcliente," + 
"emailcliente) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); 

// seta os valores 
stmt.setInt(1,cliente.getCodCliente()); 
stmt.setString(2,cliente.getNome()); 
stmt.setString(3,cliente.getCpf()); 
stmt.setString(4,cliente.getRg()); 
stmt.setString(5,cliente.getEndereco()); 
stmt.setString(6,cliente.getBairro()); 
stmt.setString(7,cliente.getCep()); 
stmt.setString(8,cliente.getCidade()); 
stmt.setInt(9,cliente.getUf()); 
stmt.setString(10,cliente.getTelefone()); 
stmt.setString(11,cliente.getCelular()); 
stmt.setString(12,cliente.getEmail()); 


// executa 
stmt.execute(); 
stmt.close(); 
} 

public void remover(Cliente cliente) throws SQLException{ 

PreparedStatement stmt = this.connection.prepareStatement("delete from cliente" + 
"where codcliente = ?"); 

stmt.setInt(1, cliente.getCodCliente()); 

// executa 
stmt.execute(); 
stmt.close(); 
} 

public void alterar(Cliente cliente) throws SQLException{ 
// prepared statement para inserção 
PreparedStatement stmt = this.connection.prepareStatement("update cliente " + 
"set nomecliente=?, cpfcliente=?, rgcliente=?, enderecocliente=?," + 
"bairrocliente=?, cidadecliente=?, cepcliente=?, coduf=?, telefonecliente=?," + 
"celularcliente=?, emailcliente=? where codcliente=?"); 

// seta os valores 
stmt.setString(1,cliente.getNome()); 
stmt.setString(2,cliente.getCpf()); 
stmt.setString(3,cliente.getRg()); 
stmt.setString(4,cliente.getEndereco()); 
stmt.setString(5,cliente.getBairro()); 
stmt.setString(6,cliente.getCep()); 
stmt.setString(7,cliente.getCidade()); 
stmt.setInt(8,cliente.getUf()); 
stmt.setString(9,cliente.getTelefone()); 
stmt.setString(10,cliente.getCelular()); 
stmt.setString(11,cliente.getEmail()); 
stmt.setInt(12,cliente.getCodCliente()); 


// executa 
stmt.execute(); 
stmt.close(); 
} 

public void buscar(Cliente cliente) throws SQLException{ 
// pega a conexão e o Statement 
PreparedStatement stmt = this.connection.prepareStatement("select * from cliente " + 
" where codcliente = ?"); 

stmt.setInt(1, cliente.getCodCliente()); 
// executa um select 
ResultSet rs = stmt.executeQuery(); 
// itera no ResultSet 

TelaCliente2 tela = new TelaCliente2(); 
tela.mostraTela(rs); 

stmt.close(); 
} 
} 

e tenho a minha interface, e o meus jTextField só lembrando estão declarados como globais tudo certinho como manda o figurino, NÂO TEM ERROS, apenas nem habilita e nem mostra na tela

protected void mostraTela(ResultSet result) throws SQLException{ 
// TODO add your handling code here: 

ResultSet rs = result; 

rs.next(); 

javax.swing.JOptionPane.showMessageDialog(null, rs.getString("nomecliente")); 

jTextField1.setEnabled(true); 
jTextField1.setText(rs.getString("telefonecliente")); 
jTextField2.setEnabled(true); 
jTextField2.setText(rs.getString("celularcliente")); 
jTextField3.setEnabled(true); 
jTextField3.setText(rs.getString("emailcliente")); 
jTextField12.setEnabled(true); 
jTextField12.setText(rs.getString("nomecliente")); 
jTextField14.setEnabled(true); 
jTextField14.setText(rs.getString("cpfcliente")); 
jTextField15.setEnabled(true); 
jTextField15.setText(rs.getString("rgcliente")); 
jTextField16.setEnabled(true); 
jTextField16.setText(rs.getString("enderecocliente")); 
jTextField17.setEnabled(true); 
jTextField17.setText(rs.getString("bairrocliente")); 
jTextField18.setEnabled(true); 
jTextField18.setText(rs.getString("cepcliente")); 
jTextField19.setEnabled(true); 
jTextField19.setText(rs.getString("cidadecliente")); 

jButton3.setEnabled(true); 

jButton4.setEnabled(true); 

jButton5.setEnabled(true); 

} 

Por favor me deem uma solução prática para mostra o resultado na tela, se alguem tiver ideia de estruturação no modo que estruturei o codigo tambem é bem vindo mais me deem uma solução, e só lembrando a busca esta tudo correto pois coloquei um JOptionPane para testar e ele retorna o resultado.

Desde já agradeço.

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Carneiro[/color][/size] :joia:

1° Não use um ResultSet em uma classe de interface gráfica.
2° Não coloque nada de interface dentro de um DAO, se não, não faz sentido ele existir.

Veja:

[code]public Cliente buscar(int id) throws SQLException{
Cliente cliente = null;
PreparedStatement stmt = this.connection.prepareStatement("select * from cliente where codcliente = ?");

stmt.setInt(1, id);

ResultSet rs = stmt.executeQuery();

if(rs.next()){
cliente = new Cliente();
cliente.setCodigo(rs.getInt("codcliente"));
cliente.setNome(rs.getString("nome"));
}

stmt.close();

return cliente;
}[/code]

[quote=“jairelton”]1° Não use um ResultSet em uma classe de interface gráfica.
2° Não coloque nada de interface dentro de um DAO, se não, não faz sentido ele existir.

Veja:

[code]public Cliente buscar(int id) throws SQLException{
Cliente cliente = null;
PreparedStatement stmt = this.connection.prepareStatement("select * from cliente where codcliente = ?");

stmt.setInt(1, id);

ResultSet rs = stmt.executeQuery();

if(rs.next()){
cliente = new Cliente();
cliente.setCodigo(rs.getInt("codcliente"));
cliente.setNome(rs.getString("nome"));
}

stmt.close();

return cliente;
}[/code][/quote]

Deve colocar este codigo que me deu no lugar do que fiz na classe DAO certo?? ai terei um programa em camadas legal e bem modelado??? Obrgiado

Veja o tutorial sobre DAO da Sun, talvez ajude:

http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html

http://java.sun.com/blueprints/patterns/DAO.html