Desenvolvimento Web com Java. Sérgio Lopes Caelum -

Documentos relacionados
POO Programação Orientada a Objetos

Refatoração Melhorando o sistema e preparando pra a Web

Vamos falar de Hibernate?

HIBERNATE Criando um projeto em Java + Hibernate do zero

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Java para WEB com Struts 2 e Hibernate

2 Criar uma Enterprise Application que num módulo EJB irá conter um ou vários Beans.

A figura acima mostra o script de criação do banco de dados que chamaremos de minicurso.

Desenvolvimento para Web em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM Lamarck Heinsch Mestrando PPGI/CT/UFSM

Continuação... Criando a Interface e adiante

Mapeando Relacionamentos Entre Classes com Anotações Hibernate Por: Raphaela Galhardo Fernandes Gleydson de Azevedo F. Lima

Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual

Introdução ao Hibernate. Hibernate Mapeamento com Anotação. Projeto Desktop Uma Classe. Objetivo. Programas Utilizados

Linguagem de Programação II Implementação

DATA ACCESS OBJECT (DAO)

Exercícios de fixação: Listas

Hibernate na sua aplicação JavaWeb

Utilizando Swing com Hibernate

A composição de uma Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos)

PROGRAMAÇÃO JAVA. Parte 3

Orientação a Objetos e Java

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

Desenvolvimento Web II

JSP (JAVASERVER PAGES)

Lista de exercícios I - RESPOSTAS Servlets e banco de dados

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

p Pacotes, a grosso modo, são apenas pastas ou diretórios do sistema operacional onde ficam armazenados os arquivos fonte de Java.

OO - Orientação a Objetos

Injeção de Dependências e Spring

Interfaces POO. Prof. Marcio Delamaro

Classes e Objetos POO

Lógica e Prog. Java6.0 + Java p/ Web com Hibernate e Struts 2. Duração 124 horas/aula

Tutorial Hibernate + Vraptor para projetos Restful.

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

Familiarização com a ferramenta JavaCC

AULA 11 PROGRAMAÇÃO ORIENTADA A OBJETOS (INTRODUÇÃO) Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

Classe Funcionario tem Endereco

Programação Orientada a Objetos

Unidade 6: Java Server Pages Prof. Daniel Caetano

Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos)

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

Orientação a Objetos AULA 09

Configurando uma aplicação Struts

Mapeamento Lógico/Relacional com JPA

Formação JAVA Web.

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira

Simulado de Linguagem de Programação Java

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

Módulo 5. Programação Orientada a Objetos. Programação Orientada a Objetos I Java (Rone Ilídio)

Herança entre Entidades JPA. Prof. Fellipe Aleixo

Programação Orientada a Objetos

Resolvendo objeto-relacional impedance mismatch com hibernate

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS

JPA Com Hibernate Aula 2

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

1) Responda de acordo com os conceitos de orientação a objetos (0,5).

Conexão Java Mini-curso Hibernate

HERANÇA NO BANCO DE DADOS COM ENTITY FRAMEWORK RESUMO

Agenda. Instalação e configuração. Processamento de comandos SQL com JDBC. Driver JDBC Criação da classe de conexão

JPA: Persistência padronizada em Java

Desenvolvimento Web TCC Turma A-1

Particionamento de Banco com o Hibernate Shards

Lição 4 Fundamentos da programação

O JUnit permite a realização de testes de unidades, conhecidos como "caixa branca", facilitando assim a correção de métodos e objetos.

Collections Framework

Transcrição:

Desenvolvimento Web com Java Sérgio Lopes Caelum - http://www.caelum.com.br sergio.lopes@caelum.com.br

Sérgio Lopes Desenvolvedor Java desde 2002 Instrutor de Java pela Caelum Trabalho com Web e Celulares Certificado SCJP Colaborador da Revista Mundo Java Moderador do GUJ Bacharelando na USP

A Palestra Bancos de Dados com Hibernate adicionar, listar, remover, editar sem SQL! Web simplificada com Vraptor web sem servlets, requests, struts JSP + JSTL + EL elegância no código html

O que vamos fazer? Algum projeto de cadastro? Sugestões: Contatos Produtos Contas bancárias

Banco de Dados Geralmente escreve-se muito SQL é chato e repetitivo é dependente de banco de dados Abordagem relacional dos dados dor de cabeça quando trabalhamos OO

Hibernate Framework para persistência de dados Simples Eficiente Mágico Nunca mais vamos escrever SQL! ORM: Object Relational Mapping trabalhar orientado a objetos

As classes de modelo Classes simples para modelar as entidades do sistema: public class Modelo {

As classes de modelo Vamos adicionar alguns atributos e gerar gets e sets: public class Modelo { private String atributo; // vários atributos... public String getatributo() { return this.atributo; public void setatributo(string a) { this.atributo = a;

As classes de modelo Precisamos de um id para chave primária: public class Modelo { private Integer id; private String atributo; // vários atributos... // vários gets e sets

As classes de modelo Vamos hibernetar a classe adicionando algumas anotações: @Entity public class Modelo { @Id @GeneratedValue private Integer id; private String atributo; // vários atributos... // vários gets e sets

Relacionamentos Um segundo modelo, para ter relacionamento: @Entity public class Modelo { @Id @GeneratedValue private Integer id; private String atributo; @ManyToOne private OutroModelo outromodelo; // gets e sets

Relacionamentos Um segundo modelo, para ter relacionamento: @Entity public class OutroModelo { @Id @GeneratedValue private Integer id; private String atributo; // gets e sets

As tabelas O Hibernate vai gerar as tabelas pra gente! nunca mais vou escrever SQL // configura o Hibernate AnnotationConfiguration conf = new AnnotationConfiguration(); conf.configure(); // gera as tabelas new SchemaExport(conf).create(true, true);

Conectar no Banco de Dados Configuramos o Hibernate Criamos uma fábrica de sessões Abrimos uma sessão // configura o Hibernate AnnotationConfiguration conf = new AnnotationConfiguration(); conf.configure(); // cria sessões SessionFactory factory = conf.buildsessionfactory(); Session session = factory.getsession();

Adicionar no Banco de Dados INSERT INTO bla bla bla? Não! Modelo m = new Modelo(); m.setatributo( Alguma coisa ); session.save(m);

Adicionar com relacionamentos INSERT bla bla bla? Não! Modelo m = new Modelo(); m.setatributo( Alguma coisa ); OutroModelo o = new OutroModelo(); o.setid(1); m.setoutromodelo(o); session.save(m);

Listar o Banco de Dados SELECT * FROM bla bla bla? Não! List<Modelo> lista = session.createcriteria(modelo.class).list(); for (Modelo m : lista) { System.out.println(m.getAtributo() +, + m.getoutromodelo().getatributo());

Refatorando um pouco Vamos deixar nossa classe de listagem um pouco mais elegante: Configurar o hibernate no construtor Um método para listar Utilizar atributos

Refatorando um pouco public class ModeloLogic { private Session session; private List<Modelo> modelos; public ModeloLogic() { AnnotationConfiguration conf = new AnnotationConfiguration(); conf.configure(); SessionFactory factory = conf.buildsessionfactory(); session = factory.getsession(); public void lista() { modelos = session.createcriteria(modelo.class).list(); for (Modelo m : modelos) System.out.println(m.getAtributo()); public static void main(string[] args) { new ModeloLogic().lista();

Que tal listarmos na Web? Tiramos o main e o System.out.println Adicionamos algumas anotações @Component( modelo ) public class ModeloLogic { private Session session; @Out private List<Modelo> modelos; public ModeloLogic() { AnnotationConfiguration conf = new AnnotationConfiguration(); conf.configure(); SessionFactory factory = conf.buildsessionfactory(); session = factory.getsession(); public void lista() { modelos = session.createcriteria(modelo.class).list();

Como exibir os dados? Vamos usar JSP para exibir os dados Usamos JSTL e EL para percorrer a listagem <h2>listar modelos</h2> <c:foreach items= ${modelos var= modelo > <li>${modelo.atributo, ${modelo.outromodelo.atributo</li> </c:foreach>

VRaptor Framework para trabalhar com Web Auxilia o desenvovimento Web Desatrelado de Servlets, Request, Response etc Lógica de negócios em classes Java elegantes

Adicionar na Web Um formulário de cadastro <h2>adicionar modelos</h2> <form action= modelo.adiciona.logic method= post > Atributo: <input type= text name= modelo.atributo /> <input type= submit /> </form>

Adicionar na Web Pegar os dados enviados e adicionar no banco atributo para ler os parâmetros método adiciona na ModeloLogic public class ModeloLogic { @Parameter public Modelo modelo = new Modelo(); public void adiciona() { this.session.save(this.modelo);

Adicionar na Web Por último, uma página com uma mensagem de confirmação: qual nome? modelo/adiciona.ok.jsp <h2>parabéns!</h2> <b>seu modelo foi inserido com sucesso!</b>

E com relacionamento? Mais um campo no nosso form de cadastro: <h2>adicionar modelos</h2> <form action= modelo.adiciona.logic method= post > Atributo: <input type= text name= modelo.atributo /> OutroModelo: <input type= text name= modelo.outromodelo.id /> <input type= submit /> </form>

Conclusão O Hibernate facilita muito o acesso a banco de dados http://www.hibernate.org O VRaptor facilita muito desenvolver as lógicas de negócio http://www.vraptor.com.br JSP com tags JSTL facilitam muito o design das páginas html

Muito Obrigado! sergio.lopes@caelum.com.br Material disponível depois em http://blog.caelum.com.br