POO Programação Orientada a Objetos



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

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

HIBERNATE Criando um projeto em Java + Hibernate do zero

Desenvolvimento Web com Java. Sérgio Lopes Caelum -

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

Vamos falar de Hibernate?

Exercícios de fixação: Listas

JAVA. Professor: Bruno Toledo

Conexão Java Mini-curso Hibernate

Usando o Eclipse - Fundamentos. Professor Vicente Paulo de Camargo

Mapeamento Objeto-Relacional

Primefaces 3. Laboratório Passo-a-Passo. JSF - Primefaces. Prof. Leandro Rubim de Freitas Versão 1.


Figura 1: Eclipse criação de um Dynamic Web Project

Criando uma aplicação web

Sistema SGPA-IFSP. Manual de Instalação

Groupware Workbench Tutorial de instalação da Aplicação-Exemplo no Eclipse

Parte II Persistência entre Modelos de Dados

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

Visual Studio+SQL Server Express LocalDB ANTONIO LUIS

Descompacte o arquivo site zip que foi baixado dentro da pasta do eclipse.

FJ-28. Desenvolvimento Ágil para a Web 2.0 com VRaptor, Hibernate e AJAX

Conheça mais da Caelum. Cursos Online Casa do Código. Blog Caelum blog.caelum.com.br

Criar uma aplicação JPA2 com EclipseLink e H2

TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER utilizando o Eclipse Galileo Modelling Tools

Conexão com Banco de Dados

Tutorial Hibernate + Vraptor para projetos Restful.

Conexão do Banco de Dados localhost

Utilizando Swing com Hibernate

TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER 3.0 utilizando o Eclipse Galileo Modelling Tools

Unidade 12: Programação de Banco de Dados com Java Prof. Daniel Caetano

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Departamento de Computação Curso de Análise e Desenvolvimento de Sistemas Modelagem Conceitual de Dados

Como criar um banco de dados usando o mysql

TUTORIAL SOBRE A CONSTRUÇÃO DE APLICAÇÕES EMPREGANDO JAVA, HIBERNATE E MySQL

TECNOLOGIAS DE ACESSO A BASES DE DADOS. Profª Ana Paula Cação Maio de 2018

TUTORIAL SISTEMA DE CONTROLE DE ACESSO

Acesso a banco de dados

Passos para a configuração do ambiente de desenvolvimento:

Manual de configuração do Central Tiss, com base de dados MySQL e utilização em rede.

FJ-28. Desenvolvimento Ágil para a Web 2.0 com VRaptor, Hibernate e AJAX

Exercício de Estrutura de dados. Java Fila

Manual de instalação do SQL 2012

Guia de instalação do REIS

PCS Laboratório de Engenharia de Software I Tutorial de Modelagem de Dados no RSA v9.5 (por Michelet dal Carpio Chávez)

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

Persistindo dados com TopLink no NetBeans

JPA Com Hibernate. Paulo Ricardo Lisboa de Almeida. 1 Universidade Positivo

Passos para a instalação

Retrofit. Criar um novo projeto. Selecionar a API. Retrofit para consumir Web Service Luiz Eduardo Guarino de Vasconcelos

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

Classes e Objetos POO

Integração Java x Flex

Desenvolvimento Web III. Prof. Felippe Scheidt

Caelum. Sobre a empresa. Sobre a apostila

Índice. 1. Introdução Instalação: Eclipse e Android Primeira aplicação em Android... 11

Para criar um projeto no ambiente eclipse utiliza-se o menu File, New e Project como ilustra a Figura 1.

Ferramentas: jar e javadoc

O JasperReports Studio é uma ferramenta de software que oferece um ambiente visual para criar relatórios para a plataforma Java. É open source.

JPA Java Persistence API. Prof. Ramon Chiara

EMF-TUTORIAL. O modelo a ser utilizado está no arquivo Rose library.mdl e tem a seguinte estrutura de classes:

PROJETO ECLIPSE: Estrutura do projeto: (Dynamic Web Project) LIBS: Java WebDeveloper. Prof. Edson Belém

Web Services. EclipseSDK/DB2 Construindo/Consumindo Serviços

ALGORITMOS. Professor: Diego Oliveira. Aula 06 - Tipos Primitivos de Dados

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 4 PROF. EMILIO PARMEGIANI

Manual de Instalação

Rede VPN UFBA Procedimento para configuração

TUTORIAL DE USO DO GIT JUNTO AO ECLIPSE

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

Criando uma página de Recados com acesso restrito ( Facebook )

DW2 Desenvolvimento Web 2


TUTORIAL: DESENVOLVIMENTO DE APLICAÇÕES COM O HIBERNATE NO NETBEANS

Análise e Projeto Orientados a Objetos

Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos

FACULDADE DE TECNOLOGIA SENAC GOIÁS PROGRAMAÇÃO PARA INTERNET TUTORIAL DE APLICAÇÃO JSF DESENVOLVIDO COM A FERRAMENTA ECLIPSE LUNA

Persistência de Classes em Tabelas de Banco de Dados

Configurando uma aplicação Struts

Linguagem de Programação II Programação Orientada a Objetos. Ambientes de Programação

Transcrição:

POO Programação Orientada a Objetos Mãos à Obra Jefferson S. Silva IFET - PI Copyright Jefferson S. Silva Slide 1 O sistema Nossa empresa foi contratada por uma pequena gravadora de música que deseja entrar na era da música digital. Contratou nossos serviços para desenvolver uma loja virtual que venda downloads de músicas. Detalhe: urgência máxima no projeto. Copyright Jefferson S. Silva Slide 2 1

O sistema Suas maiores preocupações é que o sistema seja capaz de suportar qualquer tipo de banco de dados e a interface de iteração com o cliente seja através da web, com muitos recursos visuais e ajax para atrair os compradores. Copyright Jefferson S. Silva Slide 3 O sistema O cliente pediu que o sistema passe pelos seguintes testes para aprovar os gastos com o mesmo: permitir listar, cadastrar, e remover um usuário que acessa o sistema permitir listar, cadastrar, remover e alterar um cd permitir listar, cadastrar, remover e alterar uma música sistema de login permitir alguém selecionar músicas diversas para comprar receber dados de relativos à venda, como nome do cliente, email e cartão de credito Copyright Jefferson S. Silva Slide 4 2

Partes do projeto Sendo assim, iremos dividir o projeto em algumas partes: 1. criar o ambiente de desenvolvimento 2. criar o banco de dados 3. refatorar o sistema para web e dao genérico 4. criar sistemas de gerenciamento de Cds e Músicas Copyright Jefferson S. Silva Slide 5 Partes do projeto 5. criar o sistema de login 6. criar a loja virtual, com a interface básica 7. inserir recursos de ajax na loja virtual 8. validar 9. dar uma boa turbinada na nossa loja Copyright Jefferson S. Silva Slide 6 3

Tecnologias usadas Ambiente de desenvolvimento Eclipse 3.2.x com plugins: Sysdeo Tomcat Hibernate Tools MySQL 5.0 Copyright Jefferson S. Silva Slide 7 Tecnologias usadas Java Vraptor 2 Hibernate 3 Hibernate Annotations Hibernate Validator DisplayTag JSTL Tomcat 5.5 Copyright Jefferson S. Silva Slide 8 4

Tecnologias usadas Ajax AutoSuggest Copyright Jefferson S. Silva Slide 9 Configurando o Eclipse TomcatPluginV31 Cole a pasta com.sysdeo.eclipse.tomcat_3.1.0 dentro da pasta plugins do Eclipse. Copyright Jefferson S. Silva Slide 10 5

Configurando o Eclipse Plugin HibernateTools-3.2.0.beta Cole o conteúdo da pasta plugin dentro da pasta plugins do Eclipse. Cole o conteúdo da pasta feature dentro da pasta features do Eclipse. Copyright Jefferson S. Silva Slide 11 Configurando o Eclipse Crie em um local apropriado uma pasta chamada WorkSpacePOO para colocar seus projetos. Execute o Eclipse e sete o WorkSpace criado. Copyright Jefferson S. Silva Slide 12 6

Criando o projeto Para iniciar, vamos criar nosso projeto no Eclipse. 1) Abra o Eclipse 2) Vá em File -> new -> java -> java projects Copyright Jefferson S. Silva Slide 13 Criando o projeto Crie uma Source Folder chamada src Crie uma pasta chamada lib Pelo Windows Explorer descompacte o arquivo jars.rar dentro da pasta lib. Copyright Jefferson S. Silva Slide 14 7

Adicionando ao Build Path No Eclipse clique no projeto com o botão direito e vá em Refresh, depois no menu Build Path escolha Add Libraries. Escolha User Library e clique em Next Clique em User Libraries novamente Clique em New Copyright Jefferson S. Silva Slide 15 Adicionando ao Build Path Dê um nome para sua biblioteca Clique em Add JARs... Localize os jars que estão dentro do projeto na pasta lib Clique em OK e logo em seguida finish Copyright Jefferson S. Silva Slide 16 8

log4j.properties Muitos projetos atualmente usam o log4j do projeto apache como API de log. No nosso caso, o Hibernate também utiliza o log4j. O arquivo log4j.properties, dentro da pasta src, configura o log4j para uso em todo o nosso projeto. Copyright Jefferson S. Silva Slide 17 Criando os pacotes do projeto a. Para criar um pacote clique com o botão direito na pasta SRC. Vá em new - package: model - br.com.system.model conterá as classes da camada modelo. util - br.com.system.util conterá classes que facilitarão a vida do desenvolvedor. dao - br.com.system.dao conterá as classes de persistência. Main - br.com.system.main Copyright Jefferson S. Silva Slide 18 9

Controle de usuários Neste capitulo iremos: configurar o hibernate começar o projeto pelo cadastro de usuários Copyright Jefferson S. Silva Slide 19 Controle de usuários Nosso primeiro passo será criar o sistema de controle de Usuários do nosso futuro sistema. Usaremos uma entidade sem relacionamentos e operações básicas de adicionar, remover e listar. Copyright Jefferson S. Silva Slide 20 10

Preparando o hibernate Como vamos usar o Hibernate como ferramenta ORM, precisamos primeiro configurá-lo. Os jars necessários já foram copiados precisamos apenas configurar o banco de dados. Copyright Jefferson S. Silva Slide 21 Preparando o hibernate Precisamos agora configurar o Hibernate para usar o MySQL através do hibernate.cfg.xml. Vá em File -> New -> Other -> Hibernate-> Hibernate Configuration File. Selecione o seu diretório src e o nome de arquivo como hibernate.cfg.xml e clique em Next Copyright Jefferson S. Silva Slide 22 11

Preparando o hibernate Na próxima tela, selecione as opções para configurar o MySQL: - Database dialect: MySQL - Driver class: com.mysql.jdbc.driver - Connection URL: jdbc:mysql://localhost/lojavirtual - Username: root - Password:root Copyright Jefferson S. Silva Slide 23 Preparando o hibernate Adicione duas 2 novas propriedades ao hibernate.cfg.xml para que o hibernate mostre o código sql gerado e formatado <property name="hibernate.show_sql">true</property> <property name="hibernate.format_sql">true</property> Copyright Jefferson S. Silva Slide 24 12

Usuário Para nosso sistema de usuários, é fundamental a existência de alguma classe que modele o que é um Usuário. Criaremos um JavaBean (DTO) simples para tal, e o usaremos como Entidade do Hibernate. Copyright Jefferson S. Silva Slide 25 Usuário Crie a classe Usuario no pacote br.com.system.model. Coloque atributos String para login e senha e um atributo Long (não long) para id: Copyright Jefferson S. Silva Slide 26 13

Usuário package br.com.system.model; public class Usuario { private Long id; private String login; private String senha; Copyright Jefferson S. Silva Slide 27 Usuário Acrescente outros atributos se achar necessário. Gere os getters e setters pelo Eclipse (menu Source, Generate getters and setters ou ALT+SHIFT+S+R). Copyright Jefferson S. Silva Slide 28 14

Usuário Adicione as anotações da Java Persistence API (JPA) para que o Hibernate saiba persistir nossa classe. Lembre-se de sempre importar do pacote javax.persistence. Copyright Jefferson S. Silva Slide 29 Usuário Configure nossa classe Usuario no hibernate.cfg.xml. Adicione a tag abaixo dentro da tag session-factory logo após as tags property: <mapping class="br.com.system.model.usuario"/> Copyright Jefferson S. Silva Slide 30 15

Gerando o banco de dados Vamos agora gerar o banco de dados para nossa classe Usuario usando o Hibernate. Crie a classe GeraBanco no pacote br.com.system.util que, em seu método main, cria a o banco usando o SchemaExport do Hibernate: O Hibernate apenas exporta a estrutura da base, ela deve está previamente criada. Copyright Jefferson S. Silva Slide 31 GeraBanco public class GeraBanco { public static void main(string[] args) { Configuration conf = new AnnotationConfiguration(); conf.configure(); SchemaExport se = new SchemaExport(conf); se.create(true, true); Copyright Jefferson S. Silva Slide 32 16

Adicionando Sempre que quisermos usar o Hibernate, precisamos de uma Session. No Hibernate, ao invés de trabalharmos diretamente com Connections JDBC, utilizamos sessões. As sessões do hibernate são bastante interessantes para a implementação de pool de conexões e outros recursos como cache. Copyright Jefferson S. Silva Slide 33 Adicionando Para obter uma sessão do hibernate, precisamos criar uma fábrica de sessões, uma SessionFactory. Da seguinte forma: Copyright Jefferson S. Silva Slide 34 17

Adicionando Configuration conf = new AnnotationConfiguration(); conf.configure(); SessionFactory factory = conf.buildsessionfactory(); Session session = factory.opensession();.. Copyright Jefferson S. Silva Slide 35 Adicionando Usuario u = new Usuario(); u.setlogin("admin"); u.setsenha("admin"); Transaction t = session.begintransaction(); session.save(u); t.commit(); Copyright Jefferson S. Silva Slide 36 18

Exercícios Crie a classe TestaUsuario no pacote br.com.system.main para testar a adição de um usuário. Copyright Jefferson S. Silva Slide 37 public class TestaUsuario { public static void main(string[] args) { // configura o hibernate Configuration conf = new AnnotationConfiguration(); conf.configure(); SessionFactory factory = conf.buildsessionfactory(); Session session = factory.opensession(); // cria um usuario Usuario u = new Usuario(); u.setlogin("admin"); u.setsenha("admin"); // abre transacao e insere Transaction t = session.begintransaction(); session.save(u); t.commit(); session.close(); Copyright Jefferson S. Silva Slide 38 19

DAO Como sabemos, ao utilizar acesso a banco de dados, uma prática bastante recomendada é a do uso do padrão DAO (Data Access Object). DAOs encapsulam todo acesso a dados referente às nossas entidades. Copyright Jefferson S. Silva Slide 39 DAO Vamos criar uma classe UsuarioDao que encapsula operações de adicionar, remover e editar Usuarios e também listar todos os Usuarios do sistema. Usaremos o Hibernate em nosso Dao, portanto precisamos da Session do Hibernate (que receberemos como argumento no construtor): Copyright Jefferson S. Silva Slide 40 20

DAO package br.com.system.dao; import java.util.list; import org.hibernate.session; import br.com.system.model.usuario; public class UsuarioDao { private Session session; public UsuarioDao(Session session) { this.session = session; public void atualiza(usuario u) { this.session.merge(u); public List<Usuario> listatudo() { return this.session.createcriteria(usuario.class).list(); public Usuario procura(long id) { return (Usuario) session.load(usuario.class, id); public void adiciona(usuario u) { this.session.save(u); public void remove(usuario u) { this.session.delete(u); Copyright Jefferson S. Silva Slide 41 Exercício Crie a classe UsuarioDao no pacote br.com.system.dao Altere sua classe TestaUsuario para usar o Dao para adicionar e listar. Copyright Jefferson S. Silva Slide 42 21

Exercício Instancie o UsuarioDao passando a Session para ele: UsuarioDao dao = new UsuarioDao(session); Copyright Jefferson S. Silva Slide 43 Exercício Adicione um Usuario através do dao: Usuario u = new Usuario(); u.setlogin("admin"); u.setsenha("admin"); dao.adiciona(u); Copyright Jefferson S. Silva Slide 44 22

Exercício Liste todos os usuários do banco e percorra com um for imprimindo seus logins: List<Usuario> lista = dao.listatudo(); for (Usuario usuario : lista) { System.out.println(usuario.getLogin()); Copyright Jefferson S. Silva Slide 45 package br.com.system.main; No final, sua classe deve estar assim: import java.util.list; import org.hibernate.session; import org.hibernate.sessionfactory; import org.hibernate.transaction; import org.hibernate.cfg.annotationconfiguration; import org.hibernate.cfg.configuration; import br.com.system.dao.usuariodao; import br.com.system.model.usuario; public class TestaUsuario { public static void main(string[] args) { // configura o hibernate Configuration conf = new AnnotationConfiguration(); conf.configure(); SessionFactory factory = conf.buildsessionfactory(); Session session = factory.opensession(); // cria um usuario Usuario u = new Usuario(); u.setlogin("admin"); u.setsenha("admin"); // cria dao UsuarioDao dao = new UsuarioDao(session); // abre transacao e insere Transaction t = session.begintransaction(); dao.adiciona(u); t.commit(); // lista usuarios List<Usuario> lista = dao.listatudo(); for (Usuario usuario : lista) { System.out.println(usuario.getLogin()); session.close(); Copyright Jefferson S. Silva Slide 46 23