Pesquisa em Banco de Dados!

E ai galera… to fazendo uma pesquisa numa tabela mysql e gostaria de saber qual a melhor forma de armazenar o os registros encontrados nesta pesquisa… ate o momento estou armazenando em uma string… mas ai nao da pra acessa um registro separado, sei que isso é bem ridiculo e gostaria de saber como fazer, se alguem puder passar um codio de como gravar no vetor e de como ler os registros deste vetor… valeus :grin:

Vc pode usar a classe Vector, que ficaria assim:
import java.util.Vector;

Vector resultadoConsulta = new Vector ();
resultadoConsulta.add (rs.getString (“coluna”));

e assim vai…
onde, rs.getString (“coluna”) eh o resultSet da consulta.

Mas se um registro tiver muitos campos, vc pode tb criar uma classe com os atributos do campo e adicionar o objeto dessa classe no Vector, por exemplo:

public class Usuario
{
private String nome;
private String cidade;
… //etc
//daí vc cria para cada atributo, 2 função, uma q devolve o valor e outra que coloca o valor nas variáveis, tipo:
public String getNome ()
{
return this.nome;
}

 public void setNome (String nome)
 {
     this.nome = nome;
  }
  //ae vc faz para o resto

}
daí na classe que vc fez a consulta, vc pode fazer assim:
Vector resultadoConsulta = new Vector ()
while (rs.next())
{
Usuario usuario = new Usuario();
usuario.setNome (rs.getString(“coluna”));

//depois vc faz:
resultadoConsulta.add (usuario);
}

Espero que tenha sido claro, qq coisa, eh só perguntar…
[]'s

Crie um objeto que mapeie todos os campos da projeção do teu SQL como atributos/propriedades. (ele será um ValueObject)

depois para cada registro retornado no teu SQL crie uma instancia deste objeto e armazene os dados, depois coloque este objeto em uma lista/vetor

Ola amigo, vc me ajudou muito, agora ja sei armazenar os registros num vetor, mas… como faço para apartir de uma JSP mostrar o coteudo deste vetor… e poder tambem acessar apenas um destes registros do vetor!??

[quote=“booble”]Vc pode usar a classe Vector, que ficaria assim:
import java.util.Vector;

Vector resultadoConsulta = new Vector ();
resultadoConsulta.add (rs.getString (“coluna”));

e assim vai…
onde, rs.getString (“coluna”) eh o resultSet da consulta.

Mas se um registro tiver muitos campos, vc pode tb criar uma classe com os atributos do campo e adicionar o objeto dessa classe no Vector, por exemplo:

public class Usuario
{
private String nome;
private String cidade;
… //etc
//daí vc cria para cada atributo, 2 função, uma q devolve o valor e outra que coloca o valor nas variáveis, tipo:
public String getNome ()
{
return this.nome;
}

 public void setNome (String nome)
 {
     this.nome = nome;
  }
  //ae vc faz para o resto

}
daí na classe que vc fez a consulta, vc pode fazer assim:
Vector resultadoConsulta = new Vector ()
while (rs.next())
{
Usuario usuario = new Usuario();
usuario.setNome (rs.getString(“coluna”));

//depois vc faz:
resultadoConsulta.add (usuario);
}

Espero que tenha sido claro, qq coisa, eh só perguntar…
[]'s[/quote]

========================
Olá amigo, voce me ajudou muito, agora ja sei colocar os registros encontrados de uma pesquisa SQL num vetor… mas como faço para apartir de um JSP mostrar estes dados um a um?

Como que você fez?? Usando a classe ou colocando tudo direto no vetor??

[]'s

[quote=“booble”]Como que você fez?? Usando a classe ou colocando tudo direto no vetor??

[]'s[/quote]

coloquei direto no vetor, mas se puder explicar das duas formas…

Então, se a sua busca retornou 10 registros e vc selecionou 3 colunas (nome, sobrenome e telefone), então o teu vector vai ter 30 posições. Vc sabe que a cada 3 posições no vector, eh um registro, então vamos lá:
vc faz (eu vou colocar, como se vc estivesse imprimindo o resultado no console, daí pro jsp vc muda, vc escolhe a forma de imprimir):
o seu vector, por exemplo, chama resultadoBusca
for (int i = 0; i < resultadoBusca.size(); i++)
{
System.out.println ("Usuario numero: "+i);
System.out.println ("Nome: "+resultadoBusca.elementAt(i++).toString()); //imprime na console
System.out.println ("Sobrenome: "+resultadoBusca.elementAt(i++).toString());
System.out.println ("Telefone: "+resultadoBusca.elementAt(i++).toString();
System.out.println ();
}//No fim do for, vc imprimiu um registro do banco

Com esse código, vc recuperou a informação do seu Vector e imprimiu aonde no console.

A outra forma é (a classe que vc usou para guardar as informações chama usuario):
Como o SQL retornou 10 registro, o seu vetor vai ter 10 posições:
for (int i = 0; i < resultadoBusca.size(); i++)
{
Usuario usuario = (Usuario) resultadoBusca.elementAt(i);
System.out.println ("Usuario numero: "+i);
System.out.prinltn ("Nome: "+usuario.getNome()); //imprime no console
System.out.println ("Sobrenome: "+usuario.getSobrenome());
System.out.println ("Telefone: "+usuario.getTelefone());
System.out.println ();
}
No fim do for, vc imprimiu todas as informações dos registros no console;

Como vc está usando jsp, se vc for imprimir o resultado em outra página, vc tem que colocar o vetor na sessão, assim:
Session.setAttribute (“vetor”, resultadoBusca);

daí na outra página, vc faz:
Vector resultadoBuca = (Vector) Session.getAttribute (“vetor”);

se eu não me engano, pra por e tirar da sessão é setAttribute e getAttribute, mas não tenho certeza…

Espero tê-lo ajuda, qq coisa, mande mais msgs…
[]'s

[quote=“booble”]Então, se a sua busca retornou 10 registros e vc selecionou 3 colunas (nome, sobrenome e telefone), então o teu vector vai ter 30 posições. Vc sabe que a cada 3 posições no vector, eh um registro, então vamos lá:
vc faz (eu vou colocar, como se vc estivesse imprimindo o resultado no console, daí pro jsp vc muda, vc escolhe a forma de imprimir):
o seu vector, por exemplo, chama resultadoBusca
for (int i = 0; i < resultadoBusca.size(); i++)
{
System.out.println ("Usuario numero: "+i);
System.out.println ("Nome: "+resultadoBusca.elementAt(i++).toString()); //imprime na console
System.out.println ("Sobrenome: "+resultadoBusca.elementAt(i++).toString());
System.out.println ("Telefone: "+resultadoBusca.elementAt(i++).toString();
System.out.println ();
}//No fim do for, vc imprimiu um registro do banco

Com esse código, vc recuperou a informação do seu Vector e imprimiu aonde no console.

A outra forma é (a classe que vc usou para guardar as informações chama usuario):
Como o SQL retornou 10 registro, o seu vetor vai ter 10 posições:
for (int i = 0; i < resultadoBusca.size(); i++)
{
Usuario usuario = (Usuario) resultadoBusca.elementAt(i);
System.out.println ("Usuario numero: "+i);
System.out.prinltn ("Nome: "+usuario.getNome()); //imprime no console
System.out.println ("Sobrenome: "+usuario.getSobrenome());
System.out.println ("Telefone: "+usuario.getTelefone());
System.out.println ();
}
No fim do for, vc imprimiu todas as informações dos registros no console;

Como vc está usando jsp, se vc for imprimir o resultado em outra página, vc tem que colocar o vetor na sessão, assim:
Session.setAttribute (“vetor”, resultadoBusca);

daí na outra página, vc faz:
Vector resultadoBuca = (Vector) Session.getAttribute (“vetor”);

se eu não me engano, pra por e tirar da sessão é setAttribute e getAttribute, mas não tenho certeza…

Espero tê-lo ajuda, qq coisa, mande mais msgs…
[]'s[/quote]

===============
Cara valeu de mais… se todos fossem como voce RS! Se eu puder ajudar em algo… pega meu MSN, Brigado

De nada…
Qualquer dúvida é só continuar mandado msg ae que eu respondo…
[]'s

Pergunta:

Onde estão os objetos de seu sistema?

Usar um array de registros é uma prática altamente procedural.

Você até pode programar de maieira procedural em Java, mas se não for usar o poder das carcterísticas OO, acho que você teria escolhas melhores…

Crie objetos de domínio, estude Orientação a Objetos e se livre do mundo de duas dimensões :wink:

[]s