Desenvolvimento Java EE Usando JSF - Spring Framework e Hibernate
date post
25-Oct-2014Category
Documents
view
70download
13
Embed Size (px)
Transcript of Desenvolvimento Java EE Usando JSF - Spring Framework e Hibernate
Desenvolvimento Java Enterprise Edition usando JSF + Spring Framework e HibernateUma aplicao Java EE da teoria a pratica por Rodrigo Urubatan Ferreira Jardim
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Sobre o Palestrante
Rodrigo Urubatan - SCJP 1.4 e SCWCD Trabalha com arquitetura de sistemas J2EE e treinamento
Ja desenvolveu projetos utilizando as linguagens Delphi, C++, PHP, ASP, C o l F usi n , L e a th e r, A ssem b l P e rl d o y, , Trabalha com Java/J2EE a 4 anos e com desenvolvimento de sistemas a 9 anosAtualmente colabora com pequenas correes a alguns projetos Open Source como o GUJ2, Lomboz e Veloeclipse e faz parte da coordenao do RSJUG J ministrou palestras em universidades (UCS, ULBRA, UNISC) e diversos eventos (Just Java, FISL, Seminrio do RSJUG, Maratona 4 Java, Infosul) tutoriais para o RSJUG e ja teve um artigo publicado na revista Mundo Java Atualmente trabalha como consultor na AdvancedIT, como gerente de tecnologia e qualidade na Tech Office IT, e ministra cursos e alguns pequenos projetos pela USI Informtica o principal desenvolvedor do projeto Spring-Annotation
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Agendal
Java 5 l Hibernatel l l
Mapeamento Objeto Relacional Configurao Consultas IoC/DI Recursos do Framework Porque usar Conceitos Bsicos Recursos
l
Spring Frameworkl l
l
l
JSFl l
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
HibernateHibernate servio de persistencia e consulta objeto/relacional poderoso e de alta performance. Hibernate permite o desenvolvimento de classes persistentes utilizando um idioma orientado a objetos incluindo associaes, herana, polimorfismo, composio, e colees.
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
HibernateHibernate permite a escrita de consultas no seu idioma proprio e portvel (HQL), bem como em SQL nativo, ou com uma API Orientada a objetos de Criterios e Exemplos.
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Mapeamento Objeto Relacionall Por
que? l Para que serve? l Como fazer? l Hands On!
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Mapeamento O/R: Por que?Desenvolver qualquer tipo de sistemas ja no uma tarefa simples. l Precisar pensar de duas formas diferentes aumenta a complexidade. l Pensar apenas de forma relacional nos faria perder a maior parte das vantagens do Java.l
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Mapeamento O/R: Para que serve?l
l
l
Mapear os objetos que precisam ser persistentes do sistema para a forma mais popular e performatica de armazenamento de dados utilizada hoje. Permite pensar em todo o sistema na forma de objetos, e utilizar o banco de dados apenas como armazenamento de dados. No necessrio conhecer duas linguagens diferentes para escrever um sistema.
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Mapeamento O/R: Como Fazer?Criar um modelo de objetos que seja suficiente para trabalhar com os dados necessrios para a aplicao. l Tomar cuidado para realizar o mapeamento correto, seguindo os conceitos de orientao a objetos. l E vi r d e cri r o b j to s-ta b e l ta a e al
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Hands On: O que pode ser mapeadol
Tipos primitivos do java l Tipos wraper l Enums l Classes persistentes l Relacionamentos entre classes l Componentes l Colees
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Hands On: Abordagens para o mapeamentol
Anotaesl
l l l l
Anotaes compativeis com a especificao da Java Persistence API (EJB3) Um unico lugar para saber onde as classes sero persistidas Utiliza as informaes de colees genricas Menor quantidade de meta dados para o mesmo resultado Extenses do Hibernate disponiveis onde a especificao de JPA no chegou.
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Hands On: Anotaesl l l
ll
ll
l
@Entity @Id @GeneratedValue @Embedded @Embeddable @EmbeddedId @Basic @Column
l l l
ll
ll
@OneToMany @OneToOne @ManyToOne @ManyToMany @MapKey @MappedSupperClass Inheritance
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Hands On: EnumeraesDiscriminatorValue l FetchType l GenerationType l InheritanceTypel
CascadeType l EnumType l FlushModeType l LockModeTypel
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Hands On: Validao IntegradaCom as classes mapeadas at o momento no temos nenhum tipo de validao l No h campos obrigatrios exceto o ID l Isto aumenta a complexidade do resto do cdigo, obrigando o cdigo da aplicao a tratar isto explicitamente.l
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Hands On: Validao Integradal l l l
Hibernate Annotations possui uma extenso de validao Algumas das validaes so refletidas no banco de dados gerado Podem ser utilizadas independente do resto do Hibernate quando desejado Possibilidade de criar validaes costumizadas
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Hands On: Validao Integradal
@Length(min=, max=) l @Max(value=) l @Min(value=) l @NotNull l @Past l @Future l @Email
l
@Pattern(regex="regex p", flag=) l @Range(min=, max=) l @Size(min=, max=) l @AssertFalse l @AssertTrue l @Valid
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Lets Play
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Configuraol
O Hibernate para funcionar precisa de algumas informaesl l l
l
Como se conectar ao banco de dados Qual o banco de dados que estamos utilizando Quais as classes sero persistidas Quais pacotes possuem configuraes
l
E possui diversas configuraes opcionais que veremos a seguir
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Configuraol
Suporte para conexo ao banco de dados l Utilizando um datasource configurado l Utilizando um datasource fornecido programaticamente l Utilizando um datasource fornecido via JNDI l Utilizando uma conexo fornecida manualmente
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Lets Play
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Consultasl Possibilidadesl HQLl SQL
para consultas
Nativo l Criteria
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Consultas: HQLLinguagem propria do Hibernate l Similar a SQL, mas com extenses orientadas a objetos l Facilitada a navegao nos relacionamentos por meio de propriedades l Possibilita a utilizao de poucos recursos proprios do banco de dadosl
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Consultas: SQL NativoAproveita o conhecimento ja adqirido na empresa l Possibilita a utilizao de todo o poder do banco de dados l Nos prende ao banco de dados utilizado l No utiliza todas as vantagens do mapeamento O/Rl
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Consultas: Criteria APILinguagem totalmente orientada a objetos l Consultas escritas em Java l Facilidade para Query By Example l Facilidade para escrever consultas dinmicas l Evita que o programador cometa alguns tipos de errosl
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Consultas: Design Pattern DAOOculta do resto da aplicao qual a tecnologia de acesso a dados que esta sendo utilizada. l Concentra em um unico lugar o conhecimento de como transportar um objeto de/para o banco. l Facilita o tratamento de erros do banco de dados em um unico lugar.l
Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br
Consultas: Genericsl
Podemos utilizar os generics do Java 5 para escrever um cdigo padro para acesso a dados. l A API do hibernate facilita o trabalho. l A Criteria API nos fornece os recursos neces