Usar uma classe que retorne um vector

1 resposta
S

Primeiramente quere agradeçer pela ajuda de todos aqui no PJ.

Vou torcer para que alguem possa me ajudar pois estou precisando muito.
Agora vamos ao que mais interessa,
Estou precisando de uma classe usando um Vector para fazer uma consulta ao BD, para que depois eu posso jogar o resultado da consulta dessa classe no JSP.

Ex:

//Classe que faz o conexao

public class Conexao {

public java.sql.Connection getConexao() {

 //até aqui tudo bem.

}

}

//Agora e que vem o problema, gostaria de uma classe com a mesma estrura dessa abaixo para jogar no código JSP que está mais abaixo.
public class Rubros {

public [b]Vector[/b] listaRubros() {
	// pega a conexão


	// faz o proc


	// fecha conexão
                           
                            [b]return ...[/b]
}

}

<%

pacote.Rubros rb = new Rubros();
java.util.Vector vt = [b]rb.listaRubros();[/b]
String[] linha;

%>
<table>
<tr>
<td> Código
</td>
<td> Descrição
</td>
</tr>

<%	

for (int i = 0; i<i.size(); i++) {

linha = (String[]) vt.get(i); %>
&lt;tr&gt;
	&lt;td&gt; &lt;%= linha[0]%&gt;
	&lt;/td&gt;
	&lt;td&gt; &lt;%= linha[1]%&gt;
	&lt;/td&gt;
	&lt;/tr&gt;

<%}%>

&lt;table&gt;


Vou ficar esperando uma resposta, pois acredito que alguém já tenha passado por esse mesmo problema. 
Desde já agradeço pela ajuda de todos. Valeu!

Atenciosamente,
Wilson.

1 Resposta

M

simples, no teu listaRubros(), tu vai executar um SQL certo…? vai te retornar um ResultSet, ok… com q objetos tu quer preencher esse Vetor? bem, digamos, Strings vindas do banco? (se disesse quantas colunas q estão vindo no teu resultset seria melhor):

Vector v = new Vector&#40;&#41;;

if &#40; resultSet.next&#40;&#41; == null &#41;
   return null;

do &#123;

   v.add&#40; resultSet.getString&#40; "coluna_do_banco" &#41; &#41;;

&#125; while&#40; resultSet.next&#40;&#41; &#41;;

return v;

sacou? agora, se tu quer retornar, por ex, um Vector com objetos q tem como atributos mais de uma coluna no banco, faça assim por ex:

do &#123;

   v.add&#40;

      new MeuObjeto&#40; 
                                resultSet.getString&#40; "coluna1" &#41;, 
                                resultSet.getDouble&#40; "coluna2" &#41;
      &#41;
   &#41;;

&#125; while&#40; resultSet.next&#40;&#41; &#41;;

Dica: use ArrayList, é mais rapido!

Criado 3 de novembro de 2004
Ultima resposta 4 de nov. de 2004
Respostas 1
Participantes 2