Consulta em JavaBean com JSP

12 respostas
woquiton

Manos

Estou com dúvidas sobre JavaBean, principalmente o método get, alguém teria
um exemplo de Java Bean, mas de consulta, que retorne o resultado para uma
página JSP e esta mostra (e tb como faço para mostrar). Não entendo como
colocar um ResultSet do Bean na página JSP.
Se alguém tiver um exemplo de uma JavaBean que faz um select no banco e
retorna para a página JSP, e como esta mostra. Fico grato.

Obrigado, :slight_smile: Copia um peça do seu código… nao precisa ser apostilaaa…

[]´s

Woquiton

12 Respostas

Bani

Normalmente você não manda o ResultSet para o JSP, e sim um outro objeto que tenha o conteúdo dele.
Então quando você estiver com o seu ResultSet, você percorre ele com while e vai jogando os valores dentro de um vetor/arraylist qualquer, e no final converte para array (pra ficar mais fácil e rápido usar depois). Essa array que você retorna no seu método get.
E aí no JSP você percorre a array com um for e vai montando sua página.

Nesse caso você não vai conseguir utilizar o getProperty que o JSP normalmente usa para trabalhar com JavaBeans porque ainda precisa “distribuir corretamente” o objeto recebido.
Apesar de que também existem taglibs para ajudar nesta parte.

woquiton

Oi

Entendi o que quis dizer… mas precisaria de um exemplo… pra poder fazer… :lol:
Apesar que tão complicado, é mais fácil montar no próprio JSP.

Pode me enviar algo?

[]´s

Woquiton

S

Se puder me enviar também bani agradeço!

Bani

Preguiça de tentar fazer, hein... :?

Bom, vou mandar alguns trechos de código

Classe que vai acessar o ResultSet:
List linhas = new ArrayList();
                while (rs.next())
                {
                    String[] colunas = new String[2];
                    colunas[0] = rs.getString("col1");
                    colunas[1] = rs.getString("col2");
                    linhas.add(colunas);
                }
                tabelaBean.setTabela(linhas);
No Bean:
public void setTabela(List tabela) {
    this.tabela = tabela;
  }

  public List getTabela() {
    return tabela;
  }
No JSP:
<jsp:useBean id="tabelaBean" class="bla.bla.bla.TabelaBean" scope="request"/>


          <% List tabela = tabelaBean.getTabela();
          for(int i = 0, n = tabela.size(); i < n; i++) {
          String value[] = (String[])tabela.get(i);%>
          <tr>
              <td><%=value[0]%></td>
              <td><%=value[1]%></td>
          </tr>
          <%}%>

Obs.: O código não foi testado, mas adaptei de um código que utilizava na minha empresa e funcionava, então suponho que continue certo.

S

Desculpe estar mergulhando de cabeça na conversa de vocês (não sou mau educado, sou só curioso :oops: ), é que tenho um problema parecido:
Quero criar 2 páginas em html. 1 pega os valores e outra apresenta valores tirados do banco de dados. Estive lendo exaustivamente sobre bens e servlets nos livros core java e java como programar, mas não ficou muito claro isso pra mim. Pelo que exergo agora se eu criar uma classe que tem um método só com o select, outro só com o update, delete e um ultimo com insert é um bean. Acha que estou certo? pelo que postou suas idéias se assemelham um pouco com as minhas. Se puder dar maiores explicações ou se elas ja estiverem no seu site ( de parabéns) me avise.

List linhas = new ArrayList(); while (rs.next()) { String[] colunas = new String[2]; colunas[0] = rs.getString("col1"); colunas[1] = rs.getString("col2"); linhas.add(colunas); } tabelaBean.setTabela(linhas);

O que siginifica esta tabelaBean.setTabela(linhas);
VAleu!

Bani

Um bean é qualquer classe que siga as convenções de JavaBeans, entre as quais ter métodos públicos chamados getAAA e setAAA para a propriedade AAA.
Portanto uma classe com métodos de banco de dados não necessariamente é um bean (normalmente você vai separar a classe de acesso a banco de dados das classes que vão armazenar os valores, então realmente não seria um bean).

Quanto ao código, o que eu fiz foi criar uma List e cada item dessa list ser uma array com os valores de uma linha do banco de dados, sendo cada elemento da array uma coluna.
No caso estou trabalhando com duas classes separadas, uma com o acesso ao banco e outra com o bean, por isso antes de eu fazer esse while eu estaria criando uma instância do meu bean (a classe com o get/set) e aí depois que eu populo a minha lista estou entregando ela à instância do meu bean, justamente através deste método setTabela, para depois no meu JSP, quando eu der um getTabela, eu pegar essa List.

woquiton

Bani (seu nome é Vanessa?) Isso por que acessei seu site.

Então… o que confunde bastante, é que o que diferencia uma coisa da outra, nem é o jeito de programar, e sim uma especificação, uma norma que faz por exemplo, um Bean, ser um Bean.

Ainda nisso… Fico confuso e com medo dos EJB´s, o que diferencia um EJB de um Java Bean é a forma como é chamado? Algo mais faz de um EJB tão especial?

Samurai, nao se preocupe, a conversa é de todos nós.

Bani, obrigado pela ajuda que está dando.

Woquiton

S

Obrigado pela ajuda pessoal! Já estou conseguindo me colocar neste assumto. Só uma pergunta, voces estarão no techdays? Você também vanessa? :smiley:

woquiton

O evento da sun?

Acho que nao… to fazendo curso no sábado, a vida já tá uma doidera.

Bani

EJB é algo bem diferente de JavaBean na prática. Só o nome que é parecido mesmo.
Ambos são componentes que, ao seguir certas regras e nomemclaturas, tornam-se classes que outros programas saberão usar. No caso de JavaBeans, tem usos bem diversificados, e um dos programas que sabe usá-lo é o web server, como o Tomcat, que quando uma pessoa usa as tags de JavaBeans no seu JSP ele sabe através de qual método manipulá-la.
No caso do EJB, são os application servers que vão saber o que fazer com suas classes, e eles servem mais para colocar toda lógica de negócio da sua aplicação e o resto (persistência, controle de transação, etc) o application server que faz para você. EJBs servem mais para aplicações muito grandes, distribuídas, escaláveis, etc, etc, etc. Esqueça-os por enquanto!
Mas você pode ir no site oficial do Java e ler as descrições mais detalhadas de todas essas coisas.

Eu vou ir no TechDays sim (que não é sábado, e sim terça e quarta).

woquiton

Vanessa

Legal, gostei de sua aplicação…
Olha só, o lance é que eu trabalhava com asp, nao trabalho em consultoria, é programa nosso mesmo, específico. Pra fazer, tem que entender no nosso negócio, cartoes.
O problema, nosso backoffice já está qse todo feito em java, a terceirizada usa WSAD. Então, compramos o WSAD e temos que aprender (eu e uma amiga), pois nós queremos trazer totalmente pra cá. Usam EJB´s para Modelar e Struts pra Controle. Eu to estudando Java mesmo, no livro Java como Programar, apostilas e curso. Mas nenhum ainda fala sobre o que definitivamente vou trabalhar, entao to tentando entender mais pra depois usar aos poucos.
Me indicaram o livro J2EE em 21 dias. O que acha?

Bani

Esse livro eu nao conheco, mas se voce quer estudar EJB e puder ser um livro em ingles, pode baixar o PDF do Mastering EJB la no TheServerSide.

Criado 9 de setembro de 2003
Ultima resposta 12 de set. de 2003
Respostas 12
Participantes 3