Use o código e tenha 10% de desconto!

Aplicações Java para a web com JSF e JPA

Gilliard Cordeiro

Conteúdo

Neste livro, você encontrará as especificações mais utilizadas do Java, explicadas com exemplos práticos e claros que mostram como usar cada tecnologia em separado e como utilizá-las em conjunto.

Conheças as melhores práticas da JPA 2.0, seus mapeamentos, caches e truques de performance, e tire o máximo do JSF 2.2 compreendendo seu ciclo de vida e as novidades que surgiram nas atuais versões das especificações.

 

Sumário

Parte 1 — Contato inicial

  • 1 Introdução
  • 1.1 A evolução da integração entre Java e Bancos de dados
  • 1.2 Como era a vida com o JDBC?
  • 1.3 Diminuição da impedância por meio do mapeamento
  • 1.4 Bibliotecas ORM e o Hibernate
  • 1.5 Muitos frameworks ORM, como evitar o vendor lock-in?
  • 1.6 O desenvolvimento web com servlets e o padrão MVC
  • 1.7 Tirando HTML do código Java com as JavaServer Pages
  • 1.8 Organize seu código com a separação de responsabilidades
  • 1.9 O MVC e os frameworks
  • 1.10 Por que usar JSF?
  • 1.11 O primeiro contato com o JSF
  • 1.12 Considerações finais
  • 2 Primeiros passos com a JPA
  • 2.1 Definição do modelo
  • 2.2 Configuração básica do persistence.xml
  • 2.3 Escolha o dialeto do banco de dados
  • 2.4 Automatização da criação e evolução das tabelas
  • 2.5 Gravação do primeiro dado no banco de dados
  • 2.6 Consultas simples no banco de dados com a JPA
  • 2.7 Exclusão de dados com a JPA
  • 2.8 Considerações finais
  • 3 Primeiros passos com o JSF
  • 3.1 Onde e como defino telas com o JSF?
  • 3.2 Criação da tela e dos inputs básicos de dados
  • 3.3 commandButton, Managed Beans e a submissão de formulários
  • 3.4 Passe dados da tela para o Managed Bean
  • 3.5 Como receber os parâmetros diretamente no método
  • 3.6 Gravação do automóvel no banco de dados
  • 3.7 Liste os dados com o dataTable
  • 3.8 Mas minha listagem está executando várias consultas no banco...
  • 3.9 Exclusão de dados e o commandLink
  • 3.10 Considerações finais

Parte 2 — Domine as ferramentas

  • 4 Entendendo a JPA
  • 4.1 O padrão de projetos Data Access Object (DAO)
  • 4.2 JPA não é um DAO genérico, é contextual
  • 4.3 Ciclo de vida de um objeto na JPA
  • 4.4 Considerações finais
  • 5 Como mapear tudo... ou nada!
  • 5.1 Definições de entidade
  • 5.2 Faça atributos não serem persistidos com o @Transient
  • 5.3 Mapeie chaves primárias simples
  • 5.4 Mapeie chaves compostas
  • 5.5 A anotação @Basic
  • 5.6 @Table, @Column e @Temporal
  • 5.7 @Version e lock otimista
  • 5.8 Relacionamentos muitos para um com @ManyToOne
  • 5.9 @OneToOne
  • 5.10 Relacionamentos bidirecionais
  • 5.11 O que tem a ver o dono do relacionamento com a operação em cascata?
  • 5.12 Organize melhor suas entidades e promova reaproveitamento com @Embeddable e @Embedded
  • 5.13 Relacionamentos um para muitos com o @OneToMany e @ManyToOne
  • 5.14 A importância do Lazy Loading, o carregamento preguiçoso
  • 5.15 @Lob
  • 5.16 @ElementCollection
  • 5.17 Relacionamentos muitos para muitos com o @ManyToMany
  • 5.18 Customize as colunas de relacionamentos com @JoinColumn e @JoinColumns
  • 5.19 Configure as tabelas auxiliares com @JoinTable
  • 5.20 Considerações finais
  • 6 Consultas com a JPQL e os problemas comuns na integração com o JSF
  • 6.1 Filtre dados com a Java Persistence Query Language (JPQL)
  • 6.2 Como aplicar funções às consultas
  • 6.3 Onde estão meus joins?
  • 6.4 Execute suas consultas e use parâmetros
  • 6.5 Utilize funções de agregação
  • 6.6 Faça subconsultas com a JPQL
  • 6.7 Agrupamentos e HAVING
  • 6.8 Consultas complexas... resultados complexos?
  • 6.9 Use o Select New e esqueça os arrays de Object
  • 6.10 Organize suas consultas com Named Queries
  • 6.11 Execute as Named Queries
  • 6.12 Relacionamentos Lazy, N+1 Query e Join Fetch
  • 6.13 Evite a LazyInitializationException com o OpenEntityManagerInView
  • 6.14 O problema das N+1 consultas e como resolvê-lo
  • 6.15 Considerações finais
  • 7 Entenda o JSF e crie aplicações web
  • 7.1 Se prepare para um mundo diferente, baseado em componentes
  • 7.2 A web stateless contra a web stateful
  • 7.3 O ciclo de vida das requisições no JSF
  • 7.4 Aja sobre as fases do JSF com os PhaseListeners
  • 7.5 Conheça os componentes do JSF
  • 7.6 A diferença entre Action e ActionListener
  • 7.7 Padronização no carregamento de recursos
  • 7.8 Entenda os conversores nativos, o f:convertDateTime e o f:convertNumber
  • 7.9 Conversores customizados
  • 7.10 Conheça os validadores nativos
  • 7.11 E quando os validadores nativos não fazem o que eu quero?
  • 7.12 Novidade: JSF com GET e bookmarkable URLs
  • 7.13 Regras de navegação
  • 7.14 Entenda os escopos e saiba como e quando trabalhar com cada um
  • 7.15 Considerações finais
  • 8 Validações simplificadas na JPA e no JSF com a Bean Validation
  • 8.1 Trabalhe com os validadores e crie sua própria validação
  • 8.2 Organize grupos de validação
  • 8.3 A integração entre Bean Validation e JPA
  • 8.4 A integração entre Bean Validation e JSF
  • 8.5 Considerações finais

Parte 3 - Desenvolvendo a fluência

  • 9 Enriquecendo nossa aplicação JSF
  • 9.1 Combos em cascata e commands em dataTable
  • 9.2 Mostre mensagens com h:message e h:messages
  • 9.3 Internacionalizando nossa aplicação
  • 9.4 JSF e AJAX
  • 9.5 Organize o código das telas com templates
  • 9.6 Composite Components: criando nossos próprios componentes a partir de outros
  • 9.7 Criar um jar com componentes customizados
  • 9.8 Considerações finais
  • 10 Truques que podem aumentar a escalabilidade e a performance da sua aplicação
  • 10.1 Utilize o cache de segundo nível da JPA
  • 10.2 Faça cache de consultas
  • 10.3 Colhendo estatísticas da nossa camada de persistência
  • 10.4 Relacionamentos extra-lazy
  • 10.5 Paginação virtual e real de dados
  • 10.6 Utilizando Pool de conexões
  • 10.7 Tornando o JSF mais leve com o uso inteligente de AJAX
  • 10.8 Quando possível, manipule componentes JSF no lado do cliente
  • 10.9 Considerações finais
  • 11 Conclusão
  • 12 Apêndice: iniciando projeto com Eclipse
  • 12.1 Adicionando o Tomcat no Eclipse
  • 12.2 Criando o projeto web
  • 12.3 Baixando os jars do JSF
  • 12.4 Configurando a JPA

veja mais detalhes

Autor

Gilliard Cordeiro

Gilliard Santos Cordeiro é Analista de Sistemas pela UFMS e especialista em Engenharia de Software pela Uniderp. É também tomador de tereré, tirador de foto, pescador e karateca amador. Iniciou tomando tereré desde muito cedo, como todo sul-mato-grossense, mas na programação só teve o primeiro contato na faculdade, em 2002. O início profissional foi em 2003, onde como estagiário programou em Lotus Script e um ano depois começou a desenvolver em Java. Algum tempo depois, junto com outros amigos fundou o JUGMS, que hoje organiza anualmente o Javaneiros, o maior evento de desenvolvedores de Mato Grosso do Sul. O gosto pela pesca e pelo karatê veio depois de "velho", aos 28 anos. Foi coordenador de novas tecnologias (P&D) no Tribunal de Justiça de MS, onde atualmente é diretor da área de desenvolvimento de sistemas. Ele mantém um blog em http://gilliard.eti.br.

O que dizem deste livro

  • Rafael Odon @rafael_odon

    Avaliei e vou usar em sala o livro "Aplicações Java para Web com JSF e JPA" da @casadocodigo … Boa didática! #recomendo

Dados do produto

Número de páginas:
346
ISBN:
978-85-66250-01-5

Compartilhe!

Compartilhe no Facebook Compartilhe no Twitter