Visualizar dados em Datatable

Boa noite,

Estou desenvolvendo uma aplicação que tem como único propósito é exibir dados que estão em um banco. Como eu não tenho lá muito conhecimento com JSF, decidi começar com algo bem simples, mas agora empaquei. A aplicação tá montada, mas acho que não está se conectando ao banco porque aparece toda estrutura e tal, mas só retorna No records found ao invés dos dados.

Vou deixar aqui o que fiz até agora, se alguém puder dar uma olhada e me dar uma idéia, eu agradeço.

[code]package Model;
/**
*

  • @author Munique
    */

public class Estacao {

private int codigo;
private String data;
private String nomeEstacao;
private String temperatura;
private String pressao;

public Estacao() {
}

public int getCodigo() {
    return codigo;
}

public void setCodigo(int codigo) {
    this.codigo = codigo;
}

public String getNome() {
    return nomeEstacao;
}

public void setNome(String nome) {
    this.nomeEstacao = nome;
}

public String getData() {
    return data;
}

public void setData(String data) {
    this.data = data;
}

public String getTemperatura() {
    return temperatura;
}

public void setTemperatura(String temperatura) {
    this.temperatura = temperatura;
}

public String getPressao() {
    return pressao;
}

public void setPressao(String pressao) {
    this.pressao = pressao;
}

}[/code]

[code]package Controller;

import Model.Estacao;
import java.sql.SQLException;
import javax.faces.model.DataModel;
import java.util.List;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

/**
*

  • @author Munique
    */
    public class EstacaoController {

    private Estacao estacao;
    private DataModel listaEstacoes;

    public DataModel getListarLivros() throws SQLException {
    List lista = new Dao.EstacaoDao().listaEstacao();
    listaEstacoes = new ListDataModel(lista);
    return listaEstacoes;
    }
    }[/code]

[code]package Dao;

import Model.Estacao;
import Utils.ConexaoBanco;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
*

  • @author Munique
    */
    public class EstacaoDao {

    public List listaEstacao() throws SQLException {
    List estacoes = new ArrayList();

     String select = "SELECT * FROM estacao ORDER BY codigoestacao";
    
     PreparedStatement stmt = ConexaoBanco.getConnection().prepareStatement(select);
     ResultSet rs = stmt.executeQuery();
    
     while (rs.next()) {
         Estacao estacao = new Estacao();
         estacao.setCodigo(rs.getInt("codigoestacao"));
         estacao.setNome(rs.getString("descestacao"));
         estacao.setData(rs.getString("horario"));
         estacao.setTemperatura(rs.getString("temperatura"));
         estacao.setPressao(rs.getString("pressao"));
         estacoes.add(estacao);
     }
    
     rs.close();
     stmt.close();
    
     return estacoes;
    

    }

}[/code]

[code]package Utils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
*

  • @author Munique
    */

public class ConexaoBanco {

private static final String url = "jdbc:postgresql://localhost:5432/livraria";
private static final String driver = "org.postgresql.Driver";
private static final String user = "postgres";
private static final String pswd = "postgre";    

public static Connection getConnection() {
    try {
        Class.forName(driver);
        return DriverManager.getConnection(url, user, pswd);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        throw new RuntimeException(e);
    }
    return null;
}

}[/code]

[code]<?xml version='1.0' encoding='UTF-8' ?>

Gerenciador de Livros

Gerenciador de Estação


</h:body>
[/code]

Bom mas no MB(estacaoController) não tem esse método q vc chama no DataTable:

<p:dataTable id="tabela" var="estacao" value="#{estacaoController.listarEstacaoes}">

lá só tem esse método:

getListarLivros()

e meu método retorna um List não um DataModel veja:

@ManagedBean(name = "entradaCargosBBean")
@ViewScoped
public class EntradaCargosBackingBean implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Cargo cargo = new Cargo();

	public List<Cargo> getCargos() {
		InterfaceDAO<Cargo> cargoDAO = new HibernateDAO<Cargo>(Cargo.class,
				FacesContextUtil.getRequestSession());
		return cargoDAO.getBeansByExample(this.getCargo());
	}

minha página

<p:dataTable id="tabela" value="#{entradaCargosBBean.cargos}"
	var="cargo" binding="#{cargoBean.tabela}"
	emptyMessage="sem registros" scrollable="true" height="100" style="font-size:12px;" >

vc usa anotações ou não? Pq se usar anotações faltou dizer q essa classe é um ManagedBean igual o meu de cima, na questão do DataModel num sei se pode ou não tá?

Eu não to usando Hibernate e nem Anotações porque não entendi bem o funcionamento deles. Eu tenho que mostrar essa aplicação logo então to me virando aqui.

mas o q passei naum ajudou em nd? Nem precisa usar anotações e hibernate, apesar de facilitar em muito nosso trabalho.

Na verdade, eu não entendi.
Eu fiz isso baseado em um exemplo que vi em um CRUD com Anotações e estava assim, mas como não tenho o conhecimento, tentei aplicar o padrão de MVC que já conhecia de desktop.

Alterei a nomeação e chamada do método, mas ainda nada.

public DataModel listarEstacoes() throws SQLException { List<Estacao> lista = new Dao.EstacaoDao().listaEstacao(); listaEstacoes = new ListDataModel(lista); return listaEstacoes; }

<h:form prependId="false"> <p:dataTable id="tabela" var="estacao" value="#{estacaoController.listarEstacoes}"> <p:column> <f:facet name="header"> <h:outputText value="Estacão"/> </f:facet>

Existe algum outro meio pra exibição de dados?