![]() |
|
Código-Fonte Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimentoDiga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
|
Você está aqui:
JSF - Java Server Faces :::
JSF HTML Tags ::: |
Como retornar os registros de uma tabela do banco de dados e fornecê-los para exibição em um controle <h:dataTable> como um objeto da interface ResultSetQuantidade de visualizações: 8966 vezes |
|
A propriedade value do controle <h:dataTable> nos permite definir a fonte dos dados a serem exibidos na tabela HTML gerada por esta tag. Entre as fontes de dados aceitáveis está um objeto da interface java.sql.ResultSet. Isso quer dizer que podemos disparar um comando SQL SELECT em uma tabela do banco de dados e já passar os dados diretamente para o <h:dataTable>, sem a necessidade de usarmos classes de entidades adicionais ou listas intermediárias. Para ver como isso é feito, considere um bean gerenciado JSF que faz uma conexão com o banco de dados e obtém os registros de uma tabela chamada contatos: Código para Agenda.java:
package arquivo;
import java.sql.*;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.sql.rowset.CachedRowSet;
@ManagedBean
@SessionScoped
public class Agenda {
public Agenda() {
}
// método que permite obter a lista de contatos
public ResultSet getListaContatos() {
// lista que guardará os contatos
CachedRowSet crs = null;
// obtém a conexão com o banco de dados
Connection conn = Conexao.getConexao();
try {
Statement stmt = conn.createStatement();
String query = "SELECT * FROM contatos ORDER BY nome";
ResultSet rs = stmt.executeQuery(query);
crs = new com.sun.rowset.CachedRowSetImpl();
crs.populate(rs);
} catch (SQLException ex){
// talvez um log aqui
}
return crs;
}
}
Veja que, embora a assinatura do método getListaContatos() mostre que o retorno é um objeto da interface java.sql.ResultSet, no corpo do método nós estamos retornando um objeto da classe com.sun.rowset.CachedRowSetImpl, uma implementação concreta da interface javax.sql.rowset.CachedRowSet. Isso é feito porque, para retornarmos apenas um ResultSet, a conexão com o banco de dados deveria permanecer aberta, ao passo que uma implementação da interface javax.sql.rowset.CachedRowSet é um conjunto de dados "desconectado". Veja agora o código para a página JSP ou Facelets que contém o controle <h:dataTable> que exibirá os registros da tabela do banco de dados: Código para index.xhtml:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Estudos JavaServer Faces</title>
</h:head>
<h:body>
<h:form>
<h:dataTable border="1" value="#{agenda.listaContatos}"
var="contato">
<h:column>#{contato.id}</h:column>
<h:column>#{contato.nome}</h:column>
<h:column>#{contato.telefone}</h:column>
<h:column>#{contato.email}</h:column>
</h:dataTable>
</h:form>
</h:body>
</html>
A classe Agenda obtém a conexão com a base de dados por meio da linha: // obtém a conexão com o banco de dados Connection conn = Conexao.getConexao(); Em outras dicas desta seção eu mostro como esta classe de conexão pode ser escrita. |
|
|
Veja mais Dicas e truques de JSF - Java Server Faces |
Dicas e truques de outras linguagens |
|
Java - Java Swing - Como obter a quantidade de colunas em uma JTable usando o método getColumnCount() |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







