Duvida resultset [resolvido]

Ola galera, segue o codigo com o resultset:

[code]
public Cliente exibirCliente() throws BancoDeDadosException{

	String usuario = "root";   
    String senha = "palitodedente";   
    String url = "jdbc:mysql://localhost:3306/javaprogrammer";   
    ResultSet rs = null;
    String nome = "";
    String cpf ="";
    String driverName = "com.mysql.jdbc.Driver";
    Cliente cli = new Cliente();
    try{
    	Class.forName(driverName);
    		
    		Connection conn = DriverManager.getConnection(url, usuario, senha);
    			
    			Statement statement = conn.createStatement();
    			
    				String sql = "SELECT * FROM cliente order by nome desc;"; 
    						
    						rs = statement.executeQuery(sql);
       
    while(rs.next()){   		
          
    	nome = nome +rs.getString("nome") +"\n";
    	cpf = cpf +rs.getString("cpf") +"\n";
    
    }	
    	 	       	
    cli.setNome(nome);
    cli.setCpf(cpf);
   
    statement.close();   
    conn.close();   
   
    }catch (ClassNotFoundException e) {   
        e.printStackTrace();   
	
    }catch (SQLException e) {   
    	throw new BancoDeDadosException("Cliente não cadastrado");

}
    return cli;
}[/code]

Da forma como esta o codigo ele esta lendo o banco corretamente porém, esta lendo todos os nomes primeiro e em baixo le todos os cpf, nao estou conseguindo fazer com que leia nome e cpf junto do 1º cadastro, e assim por diante. Teria como fazer pesquisas em duas colunas e jogar em uma variavel? Tipo assim:

String sql = "SELECT nome, cpf FROM cliente;"

[code] while(rs.next()){

    	nome = nome +rs.getString("nome, cpf") +"\n";[/code]

tenta assim.

while(rs.next()){ nome = rs.getString("nome"); cpf = rs.getString("cpf"); }

abraços

palmadias dese jeito so pegou meu 1º cadastro.

você concatena o nome e o cpf de cada cliente numa única instância de Cliente. apesar de funcionar, é muito estranho.

seu método deve retornar uma lista. mais ou menos assim:

[code]public List exibirCliente() throws BancoDeDadosException{
// …

List<Cliente> clientes = new ArrayList<Cliente>();
Cliente cliente;

while(rs.next()) {
    cliente = new Cliente();
    cliente.setNome(rs.getString("nome"));
    cliente.setCpf(rs.getString("cpf"));
    clientes.add(cliente);
}

// ...

return clientes;

}[/code]
depois você itera a lista para exibir os clientes.

Oi,

Então é pq no resultado da consulta do seu Select só retornou 1(uma) linha.

Tchauzin!

Oi,

Então é pq no resultado da consulta do seu Select só retornou 1(uma) linha.

Tchauzin![/quote]
Aquele código só vai mostrar o último cliente mesmo. Nome e CPF são sobreescritos.

O do wbdsjunior está certo.

Oi,

Então é pq no resultado da consulta do seu Select só retornou 1(uma) linha.

Tchauzin![/quote]
Aquele código só vai mostrar o último cliente mesmo. Nome e CPF são sobreescritos.

O do wbdsjunior está certo.[/quote]

Oi,

Realmente… falta de atenção! pensei que os set’s estavam dentro do while.

O do wbdsjunior está certo

Tchauzin!

vlw ae galera resolvido!