Problema com interface de busca java com mysql -AJUDA

Gente to com probleminha, ta tudo buscando ok mais quando eu peço uma busca pela coluna endereço ele so retorna o 1º com aquele endereco inves de mostrar todos. olha:

[code] public ResultSet Conjunto(String sql) throws Exception {
ResultSet rs=null;
String stm=sql;
Connection cnx;
try{
Class.forName(“com.mysql.jdbc.Driver”).newInstance();
cnx=DriverManager.getConnection(“jdbc:mysql://localhost/fornec”,“root”,"");
PreparedStatement statement=cnx.prepareStatement(stm);
rs=statement.executeQuery();
}
catch(Exception e){
System.out.println(e.toString());
}
return rs;
}
public Fornecedor getEndFornecedor(String Nome){
String stm=“Select * from fornecedor Where Endereco=’”+Nome+"’";
ResultSet rs; //Traz a tabela
Statement statem;
Fornecedor forn=new Fornecedor();
Fornecedor fr=new Fornecedor();
try{
rs=this.Conjunto(stm);
rs.first();
forn.setNome(rs.getString(“Nome”));
forn.setEndereco(rs.getString(“Endereco”));
forn.setTelefone(rs.getString(“Telefone”));
forn.setCidade(rs.getString(“Cidade”));
forn.setEstado(rs.getString(“Estado”));
fr=forn;

    }catch (Exception e){
        System.out.println(e.toString());
    }
    return fr;
}

//-------------------------------------------------------------------------------------------------------------------
/O projeto principal ta assim:/

if ((busca.equalsIgnoreCase(“be”))||(busca.equalsIgnoreCase(“busca enderecal”))){
String Nome=JOptionPane.showInputDialog(null,“Insira o endereco do fornecedor:”,“Digite " * " para listar todos”);
if (Nome.equalsIgnoreCase("*")){
Vector v=fr.ListaFornecedores();

    int nel=v.size();
    System.out.println("Numero de Clientes: "+nel);

    for(int y=0;y<nel;y++){

        fr=(Fornecedor) v.elementAt(y);
    System.out.println("id "+(y+1)+":");
    System.out.println(fr.getNome());
    System.out.println(fr.getEndereco());
    System.out.println(fr.getTelefone());
    System.out.println(fr.getCidade());
    System.out.println(fr.getEstado()+"\n");
    }
        }
        else{
    for(int i=0;i<2;i++){
        fr=forn.getEndFornecedor(Nome);

    System.out.println(fr.getNome());
    System.out.println(fr.getEndereco());
    System.out.println(fr.getTelefone());
    System.out.println(fr.getCidade());
    System.out.println(fr.getEstado());}
        }
        if (fr.getNome()==null && fr.getEndereco()==null && fr.getTelefone()==null && fr.getCidade()==null && fr.getEstado()==null){
            JOptionPane.showMessageDialog(null,"Endereco Inesistente");
            Nome=JOptionPane.showInputDialog(null,"Insira o endereco do fornecedor:");
            fr=forn.getNoumFornecedor(Nome);

    System.out.println(fr.getNome());
    System.out.println(fr.getEndereco());
    System.out.println(fr.getTelefone());
    System.out.println(fr.getCidade());
    System.out.println(fr.getEstado());
        }
        } [/code]

Cara o troca isso:

rs.first();

Por isso:

rs.next();

O método first() só le a primeira linha.

Espero ter ajudado.

não funcionou!
continua mostrando apenas o primeiro

São tres os problemas:

  1. O retorno do método getEndFornecedor(String Nome) é Fornecedor. Não é nenhuma collection ou array, então, sempre retornará somente 1 registro
  2. Para um retorno de multiplos registros, a iteração está incorreta

onde está

# rs=this.Conjunto(stm);  
#             rs.first();  
#             forn.setNome(rs.getString("Nome"));  
#             forn.setEndereco(rs.getString("Endereco"));  
#             forn.setTelefone(rs.getString("Telefone"));  
#             forn.setCidade(rs.getString("Cidade"));  
#             forn.setEstado(rs.getString("Estado"));  
#             fr=forn;  

deveria ser

       List<Fornecedor> fornecedores = new ArrayList<Fornecedor>();
       while (rs.next()) {
             Fornecedor forn = new Fornecedor();
             forn.setNome(rs.getString("Nome"));  
             .....
             fornecedores.add(forn);
       }

       return fornecedores;

com o método retornando um List<Fornecedor>

  1. Para iterar no list e mostrar todos os registros estão relacionados aquele endereço
       for (Fornecedor f:fornecedores) {
             System.out.println(f.getNome());
             ...
       }

talvez tenha alguma falha na sintaxe ae no meio pq fiz “a mao livre”

espero ter ajudado.