Aplicações Java para a web com JSF e JPA
Gilliard CordeiroConteú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 JP
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
- Data publicação:
- 07/2012