Apresentação Java Web - Jsf+Hibernate

49
Mini-Curso JSF - Hibernate Desenvolvendo um aplicativo completo com JSF e Hibernate.

description

Apresentação do Mini-Curso de Java Web, mostrando as ferramentas JSF e Hibernate!

Transcript of Apresentação Java Web - Jsf+Hibernate

Page 1: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Desenvolvendo umaplicativo completocom JSF e Hibernate.

Page 2: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

JSF - Como ele funciona!?JSF como MVC.JSF - exemplo prático.

O que é o Hibernate?Configurando o Hibernate.

Iniciando o nosso projeto.

Perguntas & Respostas

Page 3: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Para começar o nosso pequeno curso de JSF eHibernate, iremos falar sobre o JSF, o que é,como funciona e como programar voltado paraessa framework. Faremos um exemplo práticoe comentaremos em cima do que estamosfazendo.

Page 4: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

O que é o JSF!?É um framework desenvolvido pela Sun Microsystems, e é parte integrante da tecnologia

do mundo Java EE.O framework Java Server Faces foi desenhado para facilitar o desenvolvimento de

aplicações Web através de componentes de interface de usuário (GUI) e conecta estescomponentes a objetos lógicos.

O JSF utiliza do paradigma MVC para trabalhar com sua apresentação e navegação dedados. Sua utilização é recomendada pela Sun para o desenvolvimento Web na atualizade.

Page 5: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Sobre o JSF!??

?

?

?

?

?

?

Do mesmo criador do Struts;Paradigma de programação visual de User-interfaces

aplicado à web;É um framework que permite a criação de aplicações

Web com semântica de Swing implementando MVC;“Toolability = Ferramentabilidade” ;É uma especificação J2EE – JSR 127;Faces é mais fácil de aprender que Struts;Faces é mais componentizado;

Page 6: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Componentes para JSF?

?

?

?

?

?

?

?

?

DataGrid;Tabbed Panel;PanelGrid;SelectOneMenu, SelectOneRadio, SelectOneListBoxSelectManyMenu, SelectManyRadio,SelectManyListBox;FileUpload;Auto-complete AJAX;Muitos outros…

Page 7: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de ExemploPara nossa primeira aplicação de exemploiremos criar o famoso “Hello World”.

Crie um novo projeto e chame-o de“MeuPrimeiroProgramaJSF”.Na opção de selecionar o servidor escolha“Tomcat”.Na seção de escolha do nosso frameworkescolha o “JavaServer Faces” ou “JSF”.

Pronto, teremos um projeto criado, totalmentevoltado para o JSF!

*Obs.: A IDE utilizada nesse mini-curso é o Netbeans 6.0

Est

rutu

ra d

o P

roje

to

Page 8: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de Exemplo

Note que temos logo de cara um arquivo “welcomeJSF.jsp” que é umdefault do projeto, iremos alterá-lo para que possamos entender umpouco dos componentes.

Page 9: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de ExemploPara utilizar a framework JSF, precisamos declarar nos cabeçalhos denossas páginas *.jsp as bibliotecas que utilizaremos no nosso caso aquia JSF CORE e a JSF HTML, que é a padrão de todos desenvolvimento.

Page 10: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de Exemplo

Aqui temos o uso das bibliotecas para utilização do JSF. Por padrãotoda página JSF tem que ter o <f:view>. Esta tag é o início da árvore decomponentes, em seguida temos as tags de JSF HTML, <h:outputText>.

Note que o JSF está interagindo normalmente com tags HTML padrão.Isso é mais uma vantagem que o JSF nos traz. Mais a frente veremoscomo isso nos poder ser útil, muito útil. ;)

Page 11: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de Exemplo

Altere o valor do <h:outputText> para“Hello World”. E mande executar o projeto.

Page 12: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de Exemplo

AEW!!!Você conseguiu!

\o/

Page 13: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de ExemploBom... Até agora nada de tão espetacular, masvamos engrossar aqui um pouco desse caldo.

Na nossa segunda aplicação com JSF, iremostrabalhar com JavaBean, como passar valoresnuma outra página, como alterar o nosso objeto,como validar algumas coisas.

Mão a obra!

Cr ie um novo projeto e chame-o de“PrimJSFDinamico”.Selecione o “Tomcat” como servidor e noframework marque somente “JavaServer Faces”

Page 14: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de ExemploNessa nossa segunda aplicação teremos um campo para oenvio de nomes. Este exercício contará com uma validação,para o caso do usuário entrar com um valor inválido, nãoalfabético, retornando um erro. Caso retorne o erro, além demanter preenchido o campo digitado, também mostrará umamensagem, solicitando a alteração.

Let’s go!

Page 15: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de ExemploO Javabean mostrado a seguir será o responsável pela comunicação entre as páginainicial, que o usuário digitará o nome, em um formulário, e a página que resultará namensagem de boas vindas, caso esta seja submetida com sucesso.

Crie uma nova classe, File>New File> Java>Class, como o nome de “NomeBean” e acoloque em um pacote de beans, nesse caso “br.com.zarathon.bean”.

Page 16: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de Exemplo

dig

o d

e N

om

eB

ea

n

Com a instância de FacesContext você obtém todas as informações de estadopor requisição usadas para o processamento de um pedido JSF. O médotogetCorrentInstance() obtém a instância atual da classe FacesContext.

Page 17: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de Exemplo

dig

o d

e N

om

eB

ea

n (

Co

nti

nu

ão

)

Para adicionar uma mensagem, a classe FacesMessage representa umaúnica validação ou mensagem que é tipicamente associada à um componenteparticular na view. Neste caso, o método addMessage(), da instânciaFacesContext, é chamado. A mensagem anexada está associada aocomponente UI, se este não for nulo.

Page 18: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de ExemploConfigurando a navegação da sua aplicação

Toda a navegação da sua aplicação passa pelo arquivo de configuração“faces-config.xml”. Desta forma, este arquivo já deve ter sido adicionado pelaIDE, uma vez que o projeto tem uma pré-configuração para JavaServer Faces.

Page 19: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de ExemploConfigurando a navegação da sua aplicação

Iremos agora adicionar o nosso NomeBean aonosso framework JSF, pois o mesmo poderáalterar os atributos do mesmo e efetuandoseus métodos. para isso mude a visualizaçãodo faces-config.xml de PageFlow para XML.Feito isso, você verá a página XML que fica portrás do PageFlow.Adicionaremos agora o nosso NomeBean.Em uma linha vazia, entra as tags <faces-config> e </faces-config>, clique com o botãodireito e selecione “Add Manager Bean” quefica no menu JavaServer Faces.Abrirá uma janelinha, como essa aí do lado,basta agora só preencher com os nossodados.

Page 20: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de ExemploConfigurando a navegação da sua aplicação

Crie um novo arquivo jsp, que exibirá a nossa mensagem de boasvindas, chame-o de “boasVindas”. Deixe-o em branco porenquanto, estamos aqui configurando nossa navegação e nãonossa programação.Retornando à faces-config.xml, agora você possui duas páginassendo representadas graficamente no PageFlow. No canto direitoda imagem que representa a página welcome.jsp, existe umaquadrado. Arrastando deste quadrado, você faz uma linha denavegação, ao qual pode apontar para a mesma página ou paraoutra. Arraste de welcome.jsp até a imagem que representaboasVindas.jsp e solte.

Page 21: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de ExemploConfigurando a navegação da sua aplicação

Arraste deste ponto

Solte aqui

Page 22: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de ExemploConfigurando a navegação da sua aplicação

Se tudo ocorreu como esperado, o resultado final será esse. Muito bom...Agora temos a nossa primeira navegação, porém ela gera um texto estranho para nós, CASE1. Iremos alteraresse texto para algum texto que faça sentido para nós, altere para “sucesso”, tudo minusculo. Isso quer nosdizer que quando vier uma resposta com texto “sucesso” ele redirecionará para a página boasVindas.jsp.Faça o mesmo processo só que agora arraste a resposta para o próprio welcomeJSF.jsp, e no texto queaparecer altere para “falha”, tudo minusculo.

Page 23: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de ExemploConfigurando a navegação da sua aplicação

Se você fez tudo certo, você terá algo desse tipo.

Veja a aba XML e veja o código gerado.Parabéns, sua visualização está concluída!

Page 24: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de ExemploAté agora nada de páginas... Mas isso acabou...

Vamos agora montar nossas páginas da nossa aplicação.

we

lco

me

JS

F.js

p

Page 25: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de ExemploAté agora nada de páginas... Mas isso acabou...

Vamos agora montar nossas páginas da nossa aplicação.

bo

asV

ind

as.

jsp

Page 26: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Aplicação de ExemploMuito bem, agora só o “Gran Finale”, mande rodar a aplicação e veja

o resultado!

Page 27: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Hibernatepersistência... persistência... persistência...

Page 28: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Hibernate?

?

O Hibernate é um framework de mapeamento objeto-relacionalpara a linguagem Java

Conjunto de classes, interfaces e configuração que permitesimplificar o trabalho de persistir e recuperar objetos Java embanco de dados relacionais

Visão Geral

Aplicação Mapeamento Banco de Dados

API JDBCHibernate

Page 29: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Hibernate?

?

?

?

?

?

?

?

Configuração feita através do arquivo hibernate.cfg.xmlDeve estar localizado na raiz do classpath

Localização defaultPara projetos maven, utilizar a pasta src/main/resources

Configurações contémParâmetros de acesso a base de dadosPool de conexõesEntidades a serem persistidas

Configurando o Hibernate

Page 30: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Hibernate

Page 31: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Início do ProjetoIremos desenvolver uma aplicação que cadastre autores e essesautores poderão ter livros publicados. Faremos também umcontrole de login do administrador do cadastro. E por fim faremos aimpressão dos autores com seus respectivos livros.

Page 32: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Configurando o arquivo “hibernate.cfg.xml”.Criando a classe Usuário.

Mapeando a classe Usuário.Gerando as tabelas do banco.

Teste da classe Usuário.Criação do DAO da classe Usuário.

Criando o HibernateUtil.Criando o DAOFactory.

Transformando o DAO em DAO Genérico.Criando páginas para cadastro de usuários e lista de usuário.

Criando a classe Autor.Criando páginas para cadastro de autores e lista de autores.

Criando a classe Livro.Criando páginas para cadastro de livros e lista de livros.

Fazendo o sistema de Login.Montando nosso controle.

Page 33: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Configurando o arquivo “hibernate.cfg.xml”.Criando a classe Usuário.

Mapeando a classe Usuário.Gerando as tabelas do banco.

Teste da classe Usuário.Criação do DAO da classe Usuário.

Criando o HibernateUtil.Criando o DAOFactory.

Transformando o DAO em DAO Genérico.Criando páginas para cadastro de usuários e lista de usuário.

Criando a classe Autor.Criando páginas para cadastro de autores e lista de autores.

Criando a classe Livro.Criando páginas para cadastro de livros e lista de livros.

Fazendo o sistema de Login.Montando nosso controle.

Page 34: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Configurando o arquivo “hibernate.cfg.xml”.Criando a classe Usuário.

Mapeando a classe Usuário.Gerando as tabelas do banco.

Teste da classe Usuário.Criação do DAO da classe Usuário.

Criando o HibernateUtil.Criando o DAOFactory.

Transformando o DAO em DAO Genérico.Criando páginas para cadastro de usuários e lista de usuário.

Criando a classe Autor.Criando páginas para cadastro de autores e lista de autores.

Criando a classe Livro.Criando páginas para cadastro de livros e lista de livros.

Fazendo o sistema de Login.Montando nosso controle.

Page 35: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Configurando o arquivo “hibernate.cfg.xml”.Criando a classe Usuário.

Mapeando a classe Usuário.Gerando as tabelas do banco.

Teste da classe Usuário.Criação do DAO da classe Usuário.

Criando o HibernateUtil.Criando o DAOFactory.

Transformando o DAO em DAO Genérico.Criando páginas para cadastro de usuários e lista de usuário.

Criando a classe Autor.Criando páginas para cadastro de autores e lista de autores.

Criando a classe Livro.Criando páginas para cadastro de livros e lista de livros.

Fazendo o sistema de Login.Montando nosso controle.

Page 36: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Configurando o arquivo “hibernate.cfg.xml”.Criando a classe Usuário.

Mapeando a classe Usuário.Gerando as tabelas do banco.

Teste da classe Usuário.Criação do DAO da classe Usuário.

Criando o HibernateUtil.Criando o DAOFactory.

Transformando o DAO em DAO Genérico.Criando páginas para cadastro de usuários e lista de usuário.

Criando a classe Autor.Criando páginas para cadastro de autores e lista de autores.

Criando a classe Livro.Criando páginas para cadastro de livros e lista de livros.

Fazendo o sistema de Login.Montando nosso controle.

Page 37: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Configurando o arquivo “hibernate.cfg.xml”.Criando a classe Usuário.

Mapeando a classe Usuário.Gerando as tabelas do banco.

Teste da classe Usuário.Criação do DAO da classe Usuário.

Criando o HibernateUtil.Criando o DAOFactory.

Transformando o DAO em DAO Genérico.Criando páginas para cadastro de usuários e lista de usuário.

Criando a classe Autor.Criando páginas para cadastro de autores e lista de autores.

Criando a classe Livro.Criando páginas para cadastro de livros e lista de livros.

Fazendo o sistema de Login.Montando nosso controle.

Page 38: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Configurando o arquivo “hibernate.cfg.xml”.Criando a classe Usuário.

Mapeando a classe Usuário.Gerando as tabelas do banco.

Teste da classe Usuário.Criação do DAO da classe Usuário.

Criando o HibernateUtil.Criando o DAOFactory.

Transformando o DAO em DAO Genérico.Criando páginas para cadastro de usuários e lista de usuário.

Criando a classe Autor.Criando páginas para cadastro de autores e lista de autores.

Criando a classe Livro.Criando páginas para cadastro de livros e lista de livros.

Fazendo o sistema de Login.Montando nosso controle.

Page 39: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Configurando o arquivo “hibernate.cfg.xml”.Criando a classe Usuário.

Mapeando a classe Usuário.Gerando as tabelas do banco.

Teste da classe Usuário.Criação do DAO da classe Usuário.

Criando o HibernateUtil.Criando o DAOFactory.

Transformando o DAO em DAO Genérico.Criando páginas para cadastro de usuários e lista de usuário.

Criando a classe Autor.Criando páginas para cadastro de autores e lista de autores.

Criando a classe Livro.Criando páginas para cadastro de livros e lista de livros.

Fazendo o sistema de Login.Montando nosso controle.

Page 40: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Configurando o arquivo “hibernate.cfg.xml”.Criando a classe Usuário.

Mapeando a classe Usuário.Gerando as tabelas do banco.

Teste da classe Usuário.Criação do DAO da classe Usuário.

Criando o HibernateUtil.Criando o DAOFactory.

Transformando o DAO em DAO Genérico.Criando páginas para cadastro de usuários e lista de usuário.

Criando a classe Autor.Criando páginas para cadastro de autores e lista de autores.

Criando a classe Livro.Criando páginas para cadastro de livros e lista de livros.

Fazendo o sistema de Login.Montando nosso controle.

Page 41: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Configurando o arquivo “hibernate.cfg.xml”.Criando a classe Usuário.

Mapeando a classe Usuário.Gerando as tabelas do banco.

Teste da classe Usuário.Criação do DAO da classe Usuário.

Criando o HibernateUtil.Criando o DAOFactory.

Transformando o DAO em DAO Genérico.Criando páginas para cadastro de usuários e lista de usuário.

Criando a classe Autor.Criando páginas para cadastro de autores e lista de autores.

Criando a classe Livro.Criando páginas para cadastro de livros e lista de livros.

Fazendo o sistema de Login.Montando nosso controle.

Page 42: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Configurando o arquivo “hibernate.cfg.xml”.Criando a classe Usuário.

Mapeando a classe Usuário.Gerando as tabelas do banco.

Teste da classe Usuário.Criação do DAO da classe Usuário.

Criando o HibernateUtil.Criando o DAOFactory.

Transformando o DAO em DAO Genérico.Criando páginas para cadastro de usuários e lista de usuário.

Criando a classe Autor.Criando páginas para cadastro de autores e lista de autores.

Criando a classe Livro.Criando páginas para cadastro de livros e lista de livros.

Fazendo o sistema de Login.Montando nosso controle.

Page 43: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Configurando o arquivo “hibernate.cfg.xml”.Criando a classe Usuário.

Mapeando a classe Usuário.Gerando as tabelas do banco.

Teste da classe Usuário.Criação do DAO da classe Usuário.

Criando o HibernateUtil.Criando o DAOFactory.

Transformando o DAO em DAO Genérico.Criando páginas para cadastro de usuários e lista de usuário.

Criando a classe Autor.Criando páginas para cadastro de autores e lista de autores.

Criando a classe Livro.Criando páginas para cadastro de livros e lista de livros.

Fazendo o sistema de Login.Montando nosso controle.

Page 44: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Configurando o arquivo “hibernate.cfg.xml”.Criando a classe Usuário.

Mapeando a classe Usuário.Gerando as tabelas do banco.

Teste da classe Usuário.Criação do DAO da classe Usuário.

Criando o HibernateUtil.Criando o DAOFactory.

Transformando o DAO em DAO Genérico.Criando páginas para cadastro de usuários e lista de usuário.

Criando a classe Autor.Criando páginas para cadastro de autores e lista de autores.

Criando a classe Livro.Criando páginas para cadastro de livros e lista de livros.

Fazendo o sistema de Login.Montando nosso controle.

Page 45: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Configurando o arquivo “hibernate.cfg.xml”.Criando a classe Usuário.

Mapeando a classe Usuário.Gerando as tabelas do banco.

Teste da classe Usuário.Criação do DAO da classe Usuário.

Criando o HibernateUtil.Criando o DAOFactory.

Transformando o DAO em DAO Genérico.Criando páginas para cadastro de usuários e lista de usuário.

Criando a classe Autor.Criando páginas para cadastro de autores e lista de autores.

Criando a classe Livro.Criando páginas para cadastro de livros e lista de livros.

Fazendo o sistema de Login.Montando nosso controle.

Page 46: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Configurando o arquivo “hibernate.cfg.xml”.Criando a classe Usuário.

Mapeando a classe Usuário.Gerando as tabelas do banco.

Teste da classe Usuário.Criação do DAO da classe Usuário.

Criando o HibernateUtil.Criando o DAOFactory.

Transformando o DAO em DAO Genérico.Criando páginas para cadastro de usuários e lista de usuário.

Criando a classe Autor.Criando páginas para cadastro de autores e lista de autores.

Criando a classe Livro.Criando páginas para cadastro de livros e lista de livros.

Fazendo o sistema de Login.Montando nosso controle.

Page 47: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Configurando o arquivo “hibernate.cfg.xml”.Criando a classe Usuário.

Mapeando a classe Usuário.Gerando as tabelas do banco.

Teste da classe Usuário.Criação do DAO da classe Usuário.

Criando o HibernateUtil.Criando o DAOFactory.

Transformando o DAO em DAO Genérico.Criando páginas para cadastro de usuários e lista de usuário.

Criando a classe Autor.Criando páginas para cadastro de autores e lista de autores.

Criando a classe Livro.Criando páginas para cadastro de livros e lista de livros.

Fazendo o sistema de Login.Montando nosso controle.

Page 48: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Page 49: Apresentação Java Web - Jsf+Hibernate

Mini-CursoJSF - Hibernate

Bibliografia

Apostilas da Caelum FJ21, FJ28

Livro Desenvolvendo aplicaçõesWeb com Netbeans 6.0, Edson Gonçalves,Ed. Ciência Moderna

Apresentação: HIBERNATE de Marcelo Mrack