Caelum | Ensino e Inovação - Cursos de Java, Scrum, Ruby on Rails


FJ-26 | Laboratório de MVC com Hibernate e JSF para a Web

Para alunos avançados, que já tem uma boa prática com Java para web ou que fizeram o nosso curso FJ-21, o FJ-26 serve como complemento para introduzir tópicos ainda mais avançados e permitir que o aluno atinja a produtividade necessária para o desenvolvimento web de uma aplicação complexa.

Construiremos uma aplicação de contas a pagar completa em apenas quarenta horas, utilizando o Hibernate com banco de dados MySQL e o JavaServer Faces com RichFaces e Ajax4jsf.

Para aqueles desenvolvedores que querem se destacar conhecendo o melhor do java, como Reflection, Generics, Anotações, Design Patterns, MVC, esse é o curso que vai fazer a diferença! Por exemplo, o aluno desenvolve um único DAO genérico que será utilizado por todas as suas classes!

A aplicação a ser desenvolvida consiste de camada de acesso ao banco de dados com relações entre as tabelas, cache, uso de Criteria, validação, inversão de controle, sistema de log e formulários complicados carregados de componentes javascript e ajax.

Curso recentemente reformulado com as novidades do mercado JSF 2.0 e JPA 2.0, incluindo conteúdos exclusivos sobre as mudanças do Java EE 6 lançado em Dezembro/2009.

Bom, no início, imaginei que seria mais um curso onde entro incapaz e saio despreparado. Porém, na Caelum, foi diferente aula a aula onde através dos instrutores fizeram com que valeria cada centavo depositado no valor total do curso. Quero parabenizar pela apostila que sendo em português é melhor do que a própria criadora do Java.

Erik Coraci, FJ-26


Procurei no Google por treinamento em Java e descobri a Caelum. Pensava que ela era a melhor em treinamentos Java no Brasil. Depois de ter feito um treinamento com eles, agora tenho certeza disso!

Daniel Nascimento (Procuradoria da República do Amazonas), FJ-26


Faça já sua reserva

Informações

Carga Horária: 40 horas aula

Pré-requisitos: Curso FJ-21 ou : MVC, JSP, JSTL básico, Hibernate básico, java 5 básico, patterns dao e factory

Próximas Turmas

São Paulo

Início Término Período
15/03 26/03 Noturno (19:00 as 23:00)
15/03 19/03 Integral (9:00 as 17:00)

Rio de Janeiro

Início Término Período
15/03 26/03 Noturno (18:00 as 22:00)

Brasília

Início Término Período
24/04 22/05 Sabado (9:00 as 17:00)

Conteúdo detalhado do FJ-26

Como aprender Java

  1. Falando em Java
  2. O que é realmente importante?
  3. O treinamento
  4. Convenções de Código
  5. Sobre os exercícios
  6. Sobre os treinamentos
  7. Indicação de bibliografia extra
  8. Tirando dúvidas

Hibernate básico

  1. Hibernate
  2. Baixando na internet
  3. Anotações, EJB3 e Persistence API
  4. Criando a classe Funcionario
  5. Exercícios: Iniciando o projeto
  6. Configurando o hibernate
  7. Exercícios: Configurações
  8. Gerando as tabelas
  9. Exercícios: Gerando tabelas
  10. SchemaUpdate
  11. Session e Connection Pool
  12. Inserindo novos objetos
  13. Exercícios: save
  14. O que faz o método save
  15. Habilitando o Connection Pool C3P0
  16. Exercícios: Pool de conexões
  17. Buscando um objeto pela chave primária
  18. Exercícios: load
  19. Exercícios adicionais: Lazy

Conta a pagar e Fornecedor

  1. Nosso sistema de contas a pagar
  2. Exercícios
  3. Data e hora
  4. Relacionamentos
  5. Exercícios
  6. Mais controle nos mapeamentos
  7. Criando alguns objetos
  8. Exercícios: Persistência de Relacionamentos
  9. Recuperando uma relação
  10. Exercícios

O Gerenciador de Estados

  1. Mais operações
  2. Exercícios: update e delete
  3. saveOrUpdate
  4. Exercícios opcionais: saveOrUpdate
  5. Objetos Gerenciados
  6. O estado Managed
  7. O estado Transient
  8. O estado Detached
  9. O estado Removed

Funcionamento da Session e detalhes importantes

  1. Cache de primeiro nível
  2. Exercícios: Testando o Cache
  3. Lock otimista e pessimista
  4. Load, Get e Lazyness
  5. Exercícios: Load e Get
  6. Chaves primárias
  7. @Embeddable
  8. Exercícios opcionais: Embeddable

Data Access Object - DAO

  1. HibernateUtil
  2. Exercícios: HibernateUtil
  3. Data Access Object
  4. Exercícios: Dao genérico
  5. DAO específico
  6. Exercícios
  7. Para saber mais: Outras opções de DAO
  8. Para saber mais: Herança nos DAOs específicos
  9. Para saber mais: Métodos genéricos

Criteria API

  1. Criando uma pesquisa orientada a objetos
  2. Exercícios: Conhecendo o Criteria
  3. Ordenando resultados
  4. Exercícios: Ordenação
  5. Restrição "e" Restrição
  6. Restrição "ou" Restrição
  7. Exercícios: and e or
  8. Conjunctions e Disjunctions
  9. Paginação
  10. Contando Linhas com Projection
  11. Exercícios: projections
  12. Soma
  13. Exercícios opcionais: sum
  14. Outras Projeções
  15. Criterias mais elaboradas
  16. Navegando em relacionamentos
  17. SubCriterias
  18. Alias
  19. Exercícios opcionais: subcriterias e alias

Hibernate Query Language

  1. Outra maneira de realizar queries
  2. Um query equivale a um Criteria
  3. Joins e produtos cartesianos
  4. Funções no HQL: lower()
  5. Exercícios: HQL
  6. Paginação
  7. Exercícios opcionais: funções e paginação
  8. Compondo Critérios de Busca: AND e OR
  9. Projeções
  10. Consultas mais elaboradas

Mais sobre consultas

  1. HQL instanciando objetos?
  2. Exercícios opcionais: new em HQL
  3. Queries Nativas
  4. ResultTransformers
  5. Exercícios opcionais: SQL com Hibernate
  6. Criteria x HQL
  7. Para Saber Mais: Query by Example
  8. Exercícios opcionais: Example
  9. Para Saber Mais: Consultas Polimórficas
  10. Para Saber Mais: DetachedCriteria

Relacionamentos

  1. Relacionamentos Bidirecionais
  2. O Lado MappedBy de um relacionamento
  3. Exercícios: Relacionamento Bidirecional
  4. Ordenando
  5. Lazy ou Eager?
  6. Foreign Key
  7. Relacionamento Many to Many
  8. Exercícios: @ManyToMany
  9. Relacionamento um para um
  10. Para saber mais: Extra Lazy
  11. Para saber mais: Tabela associativa

Otimizações

  1. Cache de segundo nível (second level cache)
  2. Exercícios: Cache de segundo nível
  3. Estatistícas
  4. Exercícios opcionais: Estatísticas
  5. StatelessSession
  6. Exercício opcional
  7. Operações em lote (bulk/batch)
  8. Para saber mais: Interceptors e Listeners

O que é JavaServer Faces

  1. Motivação: HTTP stateless
  2. Motivação: swing, visual basic e delphi
  3. Como JSF ajuda
  4. JavaServer Faces

Criando projeto web

  1. O ambiente de desenvolvimento
  2. As bibliotecas do JSF
  3. Instalando e configurando o Tomcat
  4. Criando projeto no Eclipse
  5. Instalando o JSF
  6. Testando as configurações: Olá mundo!

Managed Beans

  1. Managed Beans - lógica de negócios
  2. Representando um formulário de login em Java
  3. Registrando Managed Beans
  4. Escopos: request, session e application
  5. Ligando Managed Beans e componentes
  6. Exercícios

Navegação

  1. Configuração
  2. Exercícios: Navegação

Lógica de Negócios

  1. Controlando o acesso ao sistema
  2. Exercícios
  3. Para saber mais

Um pouco de teoria

  1. O que o JSF faz?
  2. Phases
  3. Árvore de componentes
  4. Ferramentas Drag and Drop
  5. Inúmeros componentes
  6. web.xml em um projeto JSF
  7. Exercícios: View State Method
  8. Hot code replace do Tomcat
  9. Para saber mais: Unified EL

Componentes Básicos

  1. Inúmeros componentes
  2. A lógica para lidar com fornecedores e contas
  3. A página de resultado
  4. Exercícios
  5. Organizando componentes em diversas páginas
  6. Mostrando tabelas em jsf
  7. Exercícios
  8. Visualizando um fornecedor para alteração
  9. Lógica para visualização
  10. Mais ActionListeners e ValueChangeListener
  11. Exercícios
  12. Exercícios opcionais
  13. Exercícios opcionais - ActionListener

Validação de campos

  1. Campos obrigatórios
  2. Exercícios: Campos requeridos
  3. Mensagem de erro
  4. Exercícios
  5. Outras validações
  6. Para Saber Mais: Immediate
  7. Exercícios: validateLength
  8. Alterando as mensagens de erro
  9. Exercícios: Erros customizados
  10. Outros validadores
  11. Mais informações sobre taglibs
  12. Exercícios opcionais
  13. Validadores e mensagens
  14. Criando seu validador
  15. Exercícios: Validador Personalizado
  16. Exercícios opcionais: Converter
  17. Para saber mais: Novidade no JSF 1.2
  18. Para saber mais: Criando uma tag de validação
  19. Exercícios opcionais: Tag de Validação

Internacionalização

  1. Resource bundles
  2. Exercícios: Internacionalização
  3. Exercícios opcionais

RichFaces e Ajax4JSF - Componentes Ricos

  1. Testando componentes ricos
  2. Exercícios - RichFaces
  3. Mashups
  4. Google Maps
  5. Exercícios
  6. Organizando o conteúdo com abas
  7. Exercícios
  8. Calendário
  9. Exercícios
  10. DataTable do RichFaces
  11. Exercícios: rich:dataTable
  12. DataScroller: Paginação com RichFaces
  13. Exercícios: Paginação

Completando a camada visual da aplicação

  1. Utilizando Tabs
  2. Exercícios: Abas
  3. Exercícios: Espaçador
  4. Referência
  5. ContaPagarHandler e ContaPagar
  6. Exercícios: Contas a Pagar
  7. Combo Box
  8. Pegando a referência de um managed bean
  9. Exercícios: lookup de Managed Bean
  10. Página de Contas a Pagar
  11. Exercícios: Formulário de Contas
  12. Completando o formulário
  13. Organizando o layout: PanelGrid
  14. Exercícios: Completando o form
  15. Recuperando o item selecionado no combo box e botão de salvar
  16. Exercícios: Salvar conta a pagar
  17. Richfaces dataList == forEach?
  18. Exercícios: dataList
  19. Exercícios opcionais
  20. Exercícios opcionais: Autorização

Integrando o model: preparando o ambiente

  1. Instalando o Hibernate no nosso projeto
  2. Política de aquisição de sessions: Open Session in View
  3. Exercícios: HibernateUtil
  4. Configurando nossas entidades
  5. Exercícios: Entidades
  6. Gerando o banco
  7. Exercícios: GeraBanco

Integrando o model: lógica de negócios

  1. DAO
  2. Exercícios: DAO
  3. FornecedorHandler
  4. Exercícios: FornecedorHandler com Hibernate
  5. ContaPagarHandler
  6. Exercícios: ContaPagarHandler com Hibernate

Ajax

  1. AJAX - Asynchronous JavaScript and XML
  2. AJAX no RichFaces
  3. Exercícios: abas com AJAX
  4. Envio assíncrono de formulários
  5. Exercícios: formulário com AJAX
  6. Validação com ajax
  7. Exercícios: validação
  8. Edição com AJAX
  9. Exercícios: edição

Apêndice - JSF 2.0

  1. Introdução ao JSF 2.0
  2. Novas features do JSF 2.0
  3. Exercícios: Projeto com JSF 2
  4. Facelets como view padrão
  5. Exercícios: Facelets
  6. Annotações para os ManagedBeans
  7. Exercícios: @ManagedBean
  8. Navegação implicita
  9. Navegação Condicional
  10. Exercícios: Navegação condicional
  11. Novos Escopos
  12. Exercícios: Escopos
  13. Ajax nativo
  14. Exercícios: Ajax

Apêndice - Do Hibernate para a JPA 2.0

  1. A JPA
  2. A JPA versão 2 e o EclipseLink
  3. O Eclipse Link e algumas configurações
  4. Criteria da JPA 2.0
  5. Criteria complicada com JPA 2.0
  6. Criteria com o StaticMetaModel
  7. Second-level cache da JPA 2.0
  8. Hibernate e a JPA 2.0
  9. Exercícios Opcionais

Apêndice - Facelets

  1. Introdução a Facelets
  2. Vantagens
  3. Exercicio: Iniciando o facelets
  4. Facelets Template
  5. Exercícios: Templates
  6. Composition Components
  7. Exercícios: Component Composition
  8. Para Saber Mais - Passing Actions
  9. Pontos Negativos
  10. Componentes customizados
  11. Exercícios

Apêndice - JBoss Seam

  1. Introdução ao JBoss Seam
  2. JSF e EJB3
  3. Facelets
  4. Exercício - Projeto Seam
  5. Configuração do Hibernate
  6. Exercício - Hibernate e Seam
  7. Seam e JSF
  8. Exercício - Seam e JSF
  9. Navegação com Seam
  10. Exercício - Listando os funcionários
  11. Validação com Seam
  12. Exercício - Validação

Apêndice - Criando seus próprios componentes

  1. Criação de componentes
  2. Exercicios - Criando o componente
  3. Exercícios - Criando a Tag JSP
  4. Adicionando atributos
  5. Exercícios - Adicionando o atributo style
  6. Completando o componente
  7. Exercícios - Adicionando o atributo value
  8. Exercícios Opcionais

Caelum | Ensino e Inovação
São Paulo: Rua Vergueiro, 3185, cj. 87, próximo ao Metrô Vila Mariana   |   Tel. (11) 5571-2751
Rio de Janeiro: Rua Senador Dantas, 80, cj. 307/308 - Centro   |   Tel. (21) 2220-4156 ou 2297-0033
Brasília: SCS Qd. 8 Bl. B-50, Sala 521 - Ed. Venâncio 2000   |   Tel. (61) 3039-4222
A Caelum roda no cloud