Listar varios registros usando Hibernate com Anotações

2 respostas
F

oi gente, estou exibindo os resultados do meu banco de dados com java usando hibernate + anotações, ai embaixo esta meu codigo, ele funciona perfeitamente, porém exibe apenas um único resultado atraves do ID do dados na tabela do banco de dados

<%@page import="br.com.salesianos.Pessoa"%>
<%@page contentType="text/html" pageEncoding="UTF-8"
import="java.sql.*"
import="java.util.Date"
import="java.text.SimpleDateFormat"
import="java.util.ArrayList"
import="java.util.Iterator"
import="java.util.List"
import="java.util.Set"
import="javax.swing.*"
import="org.hibernate.*"
import="org.hibernate.cfg.*"

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>

<%
            try
            {

            AnnotationConfiguration cfg = new AnnotationConfiguration();
            cfg.addAnnotatedClass(Pessoa.class);
            SessionFactory fabrica = cfg.buildSessionFactory();
            Session sessao = fabrica.openSession();

            Pessoa obj_pessoa = (Pessoa) sessao.get(Pessoa.class,5);
            
            String nome_pessoa = obj_pessoa.getNome();
            String cidade_pessoa = obj_pessoa.getCidade();
            out.println("Nome dos alunos.: "+nome_pessoa+"<br>");
            out.println("Cidade.: "+cidade_pessoa+"<br>");

            sessao.close();
            }
            catch(Exception erro)
            {
                    out.println("Deu erro: "+erro);
            }
%>
    </body>
</html>

o numero que esta nessa sessão, no caso o 5 é o ID que ele busca no banco de dados,

Pessoa obj_pessoa = (Pessoa) sessao.get(Pessoa.class,5);

Porém eu gostaria de mostrar o resultado de todos os registros do banco de dados, alguém sabe como posso fazer isso, ai esta a classe que eu estou usando.

package br.com.salesianos;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;

import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.hibernate.annotations.CollectionOfElements;
import org.hibernate.annotations.IndexColumn;
import org.hibernate.annotations.MapKey;

@Entity
@Table(name="pessoas")
public class Pessoa implements Serializable
{
    
    @Id
    @SequenceGenerator(name="generator_pessoa",sequenceName="sequencia_pessoa")
    @GeneratedValue(generator="generator_pessoa")
    @Column(name="idPessoa")
    private Integer id;
    @Column(name="nome_pessoa",length=40, nullable=false)
    private String nome;
    @Column
    private String fone;
    @Column
    private String cidade;
    @Column(name="valor_salario", precision=2)
    private double salario;
    @Temporal(TemporalType.DATE)
    private Date DataCadastro;
    @Temporal(TemporalType.DATE)
    private Date DataNascimento;

     
   
    public Integer getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * @return the nome
     */
    public String getNome() {
        return nome;
    }

    /**
     * @param nome the nome to set
     */
    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * @return the fone
     */
    public String getFone() {
        return fone;
    }

    /**
     * @param fone the fone to set
     */
    public void setFone(String fone) {
        this.fone = fone;
    }

    /**
     * @return the cidade
     */
    public String getCidade() {
        return cidade;
    }

    /**
     * @param cidade the cidade to set
     */
    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    /**
     * @return the salario
     */
    public double getSalario() {
        return salario;
    }

    /**
     * @param salario the salario to set
     */
    public void setSalario(double salario) {
        this.salario = salario;
    }

    /**
     * @return the DataCadastro
     */
    public Date getDataCadastro() {
        return DataCadastro;
    }

    /**
     * @param DataCadastro the DataCadastro to set
     */
    public void setDataCadastro(Date DataCadastro) {
        this.DataCadastro = DataCadastro;
    }

    /**
     * @return the DataNascimento
     */
    public Date getDataNascimento() {
        return DataNascimento;
    }

    /**
     * @param DataNascimento the DataNascimento to set
     */
    public void setDataNascimento(Date DataNascimento) {
        this.DataNascimento = DataNascimento;
    }

    /**
     * @return the telefones_pessoa
     */
    
    
    


}

2 Respostas

M

Tenta isso aqui:

List listaDePessoas = sessao.createQuery("from Pessoa").list();
		
for(Pessoa obj_pessoa: listaDePessoas) {		
		     
    out.println("Nome dos alunos.: "+obj_pessoa.getNome()+"<br>");  
    out.println("Cidade.: "+obj_pessoa.getCidade()+"<br>"); 
		
}
F

eu tentei , mas da erro: incompatibilidade de tipos

mas eu consegui de outro jeito

ta ai o codigo final, vou termina-lo depois

<%@page import="br.com.salesianos.Pessoa"%>
<%@page contentType="text/html" pageEncoding="UTF-8"
import="java.sql.*"
import="java.util.Date"
import="java.text.SimpleDateFormat"
import="java.util.ArrayList"
import="java.util.Iterator"
import="java.util.List"
import="java.util.Set"
import="javax.swing.*"
import="org.hibernate.*"
import="org.hibernate.cfg.*"

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>

<%

            /*
            try
            {

            AnnotationConfiguration cfg = new AnnotationConfiguration();
            cfg.addAnnotatedClass(Pessoa.class);
            SessionFactory fabrica = cfg.buildSessionFactory();
            Session sessao = fabrica.openSession();

            //Pessoa obj_pessoa = (Pessoa) sessao.get(Pessoa.class,5);
            Pessoa obj_pessoa = (Pessoa) sessao.createCriteria(Pessoa.class, )
            
            String nome_pessoa = obj_pessoa.getNome();
            String cidade_pessoa = obj_pessoa.getCidade();
            out.println("Nome dos pessoas.: "+nome_pessoa+"<br>");
            out.println("Cidade.: "+cidade_pessoa+"<br>");

            sessao.close();
            }
            catch(Exception erro)
            {
                    out.println("Deu erro: "+erro);
            }*/

            try
            {
            AnnotationConfiguration cfg = new AnnotationConfiguration();
            cfg.addAnnotatedClass(Pessoa.class);

            SessionFactory fabrica = cfg.buildSessionFactory();
            Session sessao = fabrica.openSession();


            List<Pessoa> lista_pessoa = new ArrayList();
            lista_pessoa = sessao.createCriteria(Pessoa.class).list();
            int tamanho_lista = lista_pessoa.size();
            String dados="";
            out.println("<table border='1'>");
            for(int i=0;i<tamanho_lista;i++)
            {
                Pessoa pessoa = lista_pessoa.get(i);            
                out.println("<tr><td>"+pessoa.getNome()+"</td><td>"+pessoa.getCidade()+"</td></tr>");            
            }
            out.println("</table><br><hr>Funciona");

            out.println("<table border='1'>");
            for(int i=0;i<tamanho_lista;i++)
            {
                Pessoa pessoa = lista_pessoa.get(i);
                {%>            
                    <tr>
                        <td><% out.println(pessoa.getNome()); %></td>
                        <td><% out.println(pessoa.getCidade()); %></td>
                    </tr>            
                <%}
            }
            out.println("</table>");

            
            sessao.clear();
        }
        catch(Exception erro)
        {
            out.println("Erro na Lista: "+erro);
        }
%>
    </body>
</html>

mas o estranho é que a primeira vez q fiz ele não funcionou, estava falando que a classe Pessoa não estava mapeada, depois mais tarde quando fui testá-lo novamente, ele funcionou, porém ele ainda da o seguinte erro:

Note: C:\Documents and Settings\estinfo\Meus documentos\NetBeansProjects\WebHibernate\build\generated\src\org\apache\jsp\listarVariosPessoaWeb_jsp.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

parece estar dando erro por estar usando operações inseguras?

pensei q poderia ser o try catch… mas eu estou usando

Criado 30 de dezembro de 2010
Ultima resposta 30 de dez. de 2010
Respostas 2
Participantes 2