Informações do Banco de Dados

6 respostas
ocanema

Boa tarde.

private String accountLookup(String nome){
    Connection con = null;
    Statement st = null;
    StringBuffer msgb = new StringBuffer("");

    try{
      //aqui vai a configuração do driver do BD      
      Class.forName("org.postgresql.Driver");  
      con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres", "ocanema", "postgres");

      Statement stmt = con.createStatement();
      ResultSet rs = stmt.executeQuery("SELECT nome FROM act WHERE nome like '" + nome + "%'");      
      
      if (rs.next())
	return rs.getString("nome") + "|";
      else
        return null;
    }
    catch (Exception e){
      return e.toString();
    }
  }

Eu queria que continuase imprimindo os resultados da consulta enquanto tivesse nomes com o parametro escolhido alí.. não sei as funções da classe ResultSet alguem poderia me dar um auxílio?

Obrigado!

6 Respostas

JimMorrison

C

Que tal…

while(rs.next()) System.out.println(rs.getString(1));

JimMorrison

em vez de usar o return direto, troca o if por um while, e armazena o resultado num string buffer, fora do while vc retorna o toString() do tal StringBuffer

ocanema

não entendi o esquema do StringBuffer;
POderia me exemplificar?

=)

JimMorrison

String é o unico objeto do java q eh instanciado por valor e nao por referencia… por isso, sempre q for trabalhar com concatenacao eh aconselhado usar o StringBuffer (q como qquer outro objeto, salvo a excecao, é passado por referencia) com isso o java nao fica criando um monte de strings…

private String accountLookup(String nome){  
            Connection con = null;  
            Statement st = null;  //essa nao tah sendo usada...
            StringBuffer msgb = new StringBuffer("");  //nem essa...
               
            StringBuffer resultado = new StringBuffer();// essa eu criei pra armazenar o resultado
            try{  
              //aqui vai a configuração do driver do BD        
              Class.forName("org.postgresql.Driver");    
              con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres", "ocanema", "postgres");  
       
              Statement stmt = con.createStatement();
              ResultSet rs = stmt.executeQuery("SELECT nome FROM act WHERE nome like '" + nome + "%'");
       
             while (rs.next())
                resultado.append(rs.getString("nome") + "|");
            }
            catch (Exception e){
              return e.toString();
            }
            return resultado.toString();
          }
ocanema

Valeu !
obrigado pelas dicas!

Criado 26 de setembro de 2007
Ultima resposta 26 de set. de 2007
Respostas 6
Participantes 3