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: 8706 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: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- 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: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <?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. |
Link para compartilhar na Internet ou com seus amigos: |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Fases de uma obra Em relação aos conceitos envolvidos na elaboração de um orçamento de obras, assinale a alternativa correta. A) Custos diretos são aqueles em que é necessário estipular um fator de rateio para que sejam apropriados aos serviços. B) Devem ser incluídas no título "desmobilização" de um orçamento as despesas com locação, fechamento, tapumes, demolições e relocações. C) A administração do canteiro de obras e as despesas decorrentes da administração da empresa fazem parte dos custos diretos de uma obra. D) Como regra, orçam-se os preços na construção civil por serviço, determinando-os segundo a produção de composições unitárias. E) Em um solo, caso seja necessário escavar 1 m3 do terreno, deve-se orçar, no item referente à escavação do material, o valor 1,4 m3. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Fórmula de Manning Galerias subterrâneas de águas pluviais escoam todo o volume de chuvas que os bueiros conseguem drenar. São importantes para a drenagem de grandes centro. Isso porque, servem para evitar alagamentos e outros prejuízos sociais, ambientais e econômicos. Para uma galeria de águas pluviais construída em concreto, com n igual 0,013, diâmetro de 85cm, declividade de fundo (S0) de 30cm/km, transportando 550l/s em regime permanente e uniforme, determine: Qual altura da lâmina d'água pluvial que a galeria apresentará nessas condições? A) 80cm. B) 53cm. C) 60cm. D) 45cm. E) 69cm. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Equação de Bernoulli Considere o tubo de fluxo abaixo contendo óleo, que flui de forma a podermos considera-lo um fluido ideal. Ele flui por um tubo que sobe de nível e se estreita. Dois manômetros marcam a pressão em dois pontos do tubo, como mostra a figura. Qual o valor da pressão indicada no segundo manômetro? (Dados: ρóleo = 900 kg / m3 e g = 9,8 m/s2) A) 290 kPa B) 109 kPa C) 114 kPa D) 286 kPa E) 90,7 kPa Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
(CEBRASPE - 2019 - Analista de Gestão de Resíduos Sólidos SLU DF) Julgue o item, acerca de aspectos relacionados aos componentes do ciclo hidrológico. A interceptação vegetal de parte da precipitação tende a reduzir a vazão ao longo do ano e a retardar e reduzir o pico de cheias. A) Verdadeiro B) Falso Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Noções de licitação pública A prefeitura de um município do interior do Estado de Santa Catarina precisa realizar uma licitação para a aquisição de bens de informática considerados comuns, como impressoras, cartuchos, laptops, estabilizadores, etc. A modalidade de licitação mais indicada é: A) convite. B) leilão. C) concurso. D) pregão. E) concorrência. Verificar Resposta Estudar Cards Todas as Questões |
Veja mais Dicas e truques de JSF - Java Server Faces |
Dicas e truques de outras linguagens |
Java - Como construir uma data em Java usando o método set() da classe Calendar - Apostila Java Básico |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga 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 |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |