DW2 Desenvolvimento Web 2

Documentos relacionados
AULA 07 HIBERNATE. Ao término desse capítulo você terá aprendido: Fundamentos do MVC Estrutura dos pacotes no NetBeans

Mecanismo de Persistência

Utilizando Swing com Hibernate

Este Tutorial básico irá nos orientar como salvar e carregar uma imagem a partir de banco de dados (MySQL), utilizando Hibernate e Java.

Mapeamento Objeto-Relacional (Object Relational Mapping)

Vamos falar de Hibernate?

Desvendando o Hibernate

Curso de Java. Acesso a banco de dados através do Hibernate. Todos os direitos reservados Klais

POO Programação Orientada a Objetos

Particionamento de Banco com o Hibernate Shards

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

INE 5612 Professor: Frank Siqueira. Leonardo Silva Jean Ercilio Thiago

INTRODUÇÃO A PERSISTÊNCIA DE DADOS COM HIBERNATE E ANNOTATION

UTILIZAÇÃO DO FRAMEWORK HIBERNATE NA CONSTRUÇÃO DE UM SISTEMA DE INFORMAÇÃO

Tutorial Hibernate + Vraptor para projetos Restful.

Parte II Persistência entre Modelos de Dados

Resolvendo objeto-relacional impedance mismatch com hibernate

Parte III Persistência entre Modelos de Dados

Mapeamento O/R e Hibernate. Luiz Fernando Rodrigues

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

Integrando o Hibernate com o Spring

PERSISTÊNCIA DE OBJETOS USANDO O FRAMEWORK HIBERNATE COM ESTUDO DE CASO

Persistência de dados com o

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

De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função

Documentação da Referência do Hibernate. Version: 3.2 ga

Banco de dados POO Márcio Delamaro. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP

Análise da Utilização de Padrões no Desenvolvimento de Softwares em Camadas

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

HIBERNATE Criando um projeto em Java + Hibernate do zero

Documentação de Referência Hibernate

Testes Automatizados com Banco de Dados

API JDBC. Paulo Ricardo Lisboa de Almeida. 1 Universidade Positivo

Aula Prática JBCD - Introdução

Testes Automatizados e Bancos de Dados

Persistência BD / drivers

PERSISTÊNCIA DE DADOS EM JAVA UTILIZANDO HIBERNATE: Mapeamento Objeto / Relacional

JDBC - Java Data Base Connectivity

Hibernate Anotations

Documentação de Referência Hibernate

Carlos S. Rodrigues Leonardo Lino Vieira Eric Felipe Barboza Antonio Vasconcellos

JPA Java Persistence API. Prof. Ramon Chiara

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: LINGUAGENS PARA APLICAÇÃO COMERCIAL

Francisco Roeder. Orientador: Prof. Adilson Vahldick

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

DATA ACCESS OBJECT (DAO)

ROOM: Biblioteca de Mapeamento Objeto-Relacional. Prof. Fellipe Aleixo

Figura 1.1 Código de inserção não baseado em Hibernate. Figura 1.2 Código de inserção baseado em Hibernate

Desenvolvimento Web com Java. Sérgio Lopes Caelum -

Faça Fácil Proficy Historian e SQL Linked Server

Persistência em banco de dados relacionais usando linguagens orientada a objetos

Módulo II Persistência com Hibernate

PROFICY HISTORIAN E SQL LINKED SERVER

Faça Fácil. Proficy Historian e SQL Linked Server

Tratamento de Exceção. Programação Orientada a Objetos Java (Rone Ilídio)

Mapeamento Lógico/Relacional com JPA

Funcionamento da Aplicação. Simulações do funcionamento. Simulação SAC

Mapeamento Objeto-Relacional

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE

BD II (SI 587) Banco de Dados Orientados à Objetos e Objeto-Relacional. Prof. Josenildo Silva.

Banco de Dados. Banco de Dados

UNIVERSIDADE FEDERAL DO PIAUÍ DEPARTAMENTO DE COMPUTÇÃO DISCIPLINA: ENGENHARIA DE SOFTWARE II PROFESSOR: ARMANDO SOARES

Hibernate. Mapeamento Objeto-Relacional. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior

Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO.

PADRÃO PARA ENVIO DE . Versão 1.0

Spring Framework. Parte 02 acesso a dados e testes de integração

Introdução. Configuração. Padrão POJO. Framework Pesistência de. Mapeamento Annotation. Objetos. Persistência. Java. Objetos. Prof.

Padrões de Projeto e Persistência com DAO

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.

Injeção de Dependências e Spring

Acadêmico: Samuel Y. Deschamps Orientador: Prof. Jacques R. Heckmann

Conexão do Banco de Dados localhost

Hibernate na sua aplicação JavaWeb


Programação Orientada a Objectos - P. Prata, P. Fazendeiro

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

JPA Demonstração das estratégias optimistic locking e pessimistic locking

Série Rações Semanais JPA & Hibernate Rogério Araújo

Desenvolvimento Web com Framework Demoiselle versão 1.0

Modulo 8 - Padrão DAO (Dta Access Object) Prof. Sheila Cáceres

Hibernate: Consultas (Parte II) Clodis Boscarioli

Aplicação Hibernate1 no NetBeans

JDBC (Java Database Connectivity) Padrão de Projeto DAO (Data Access Object) Roteiro para instalação do banco de dados e do driver JDBC

Roberto Baselio Lopes RA º Semestre ESTUDO COMPARATIVO DE IMPLEMENTAÇÃO DE MODELOS DE BANCO DE DADOS

JDBC - Java Data Base Connectivity

Criar uma aplicação JPA2 com EclipseLink e H2

Integrando recuperação de informação em banco de dados com Hibernate Search

TRATAMENTO DE EXCEÇÕES

Spring ORM- Object Relational Mapping Utilizando JPA Crislaine da Silva Tripoli

Introdução ao Hibernate 3

UFG - Instituto de Informática

Exercícios de fixação: Listas

Laboratório de Programação. Aula 12 Java 5COP088. Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Sistemas Distribuídos

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

Um exemplo de aplicação multi-tenancy com Hibernate Shards

Transcrição:

DW2 Desenvolvimento Web 2 Prof. Dr. Gustavo Poli IFSP - São Carlos : 2013.08.26

Avaliação

Avaliação Provas: 60% Trabalho: 20% Seminários: 10% Lista de Exercícios: 10%

Avaliação Provas: 60%

Avaliação Provas: 60% Matéria será organizada em duas provas Aula que antecede a prova será revisão Materia data até a data da aula de revisão

Avaliação Provas: 60%

Avaliação Provas: 60%!!! PODE COLAR!!! COLA: Nome do Aluno Folha A4 Branca Escrita a mão - APENAS Pessoal e intransferível Pode escrever o que quizer Deve estar assinada pelo aluno Será entregue junto com a prova

Avaliação Trabalho: 20%

Avaliação Trabalho: 20% Implementação do aplicativo Grupo de no máximo 4 alunos Avaliação é individual: participação e perguntas diretas

Avaliação Seminários: 10%

Avaliação Seminários: 10% Sala será organizada em grupos de 4 alunos Temas serão distribuídos Avaliação é individual: participação e perguntas diretas Apresentação deverá durar no máximo 20 min. Material a ser entregue: texto e apresentação (PDF)

Avaliação Lista de Exercícios: 10%

Avaliação Lista de Exercícios: 10% Serão distribuídas durante o curso Entrega não obrigatória Antes da prova será entregue uma lista resolvida Cada aula PODERÁ ser reservado um tempo para resolver uma questão de interesse da sala

DESCRIÇÃO DO PROJETO

ER - Modelo do Projeto

MVC Lógica da Aplicação Persistência dos Dados Interface com Usuário (M)odelo (V)isão (C)ontrolador

Ambientes de Tecnologia Heterogêneos Aplicação Orientada a Objetos Banco de Dados Relacional Camada de Mapeamento Objeto Relacional

MVC Lógica da Aplicação Persistência dos Dados Interface com Usuário (M)odelo (V)isão (C)ontrolador

Arquitetura do Hibernate Java Application Persistence Objects Hibernate Framework Configuration SessionFactory Session Transaction Query Criteria JTA JDBC JNDI Database

Arquitetura do Hibernate Java Application Persistence Objects Hibernate Framework Configuration SessionFactory Session Transaction Query Criteria JTA JDBC JNDI Database Criado quando a aplicação é inicializada. Contem informações de configuração: Conexão com o banco de dados: Pool de conexão (concorrência) etc... Fornece dois componentes básicos: Database connection Configurado via hibernate.cfg.xml Class Mapping Setup Cria a conexão entre as classes Java e as tabelas físicas no banco de dados.

Arquitetura do Hibernate Java Application Persistence Objects Hibernate Framework Configuration SessionFactory Session Transaction Query Criteria Fornece os objetos de seção (Session) Aponta para um único banco de dados Se for usado mais de um banco de dados devem haver mais de um objeto SessionFactory JTA JDBC JNDI Database

Arquitetura do Hibernate Java Application Persistence Objects Hibernate Framework Configuration SessionFactory Session Transaction Query Criteria JTA JDBC JNDI Fornece uma conexão física com o banco de dados É obtido por meio do objeto SessionFactory A existência de mais de um objeto Session gera concorrência do objeto SessionFactory responsável pela criação destes Deve ser encerrado (Fechado) Database

Arquitetura do Hibernate Java Application Persistence Objects Hibernate Framework Configuration SessionFactory Session Transaction Query Criteria Fornece a capacidade transação de dados Possui integração via JTA JTA: Java Transaction API fornece capacidade realização de transações em ambiente distribuido JTA JDBC JNDI Database

Arquitetura do Hibernate Java Application Persistence Objects Hibernate Framework Configuration SessionFactory Session Transaction Query Criteria Envia instruções ao banco de dados Podem ser utilizados instruções SQL padrão HQL: Hibernate Query Language JTA JDBC JNDI Database

Arquitetura do Hibernate Java Application Persistence Objects Hibernate Framework Configuration SessionFactory Session Transaction Query Criteria JTA JDBC JNDI Java Transaction API especificação de uma interface para a gerencia de transações remotas. Java Database Conection driver de conexão com o banco de dados. Java Naming and Directory Interface especificação de interface para acesso a serviços de naming e directory. SGBD/Dados

Exemplo

hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- Database connection settings --> <property name="connection.driver_class">com.mysql.jdbc.driver</property> <property name="connection.url">jdbc:mysql://localhost/ifsp</property> <property name="connection.username">usr_ifsp</property> <property name="connection.password">st2k17w</property> <!-- JDBC connection pool (use the built-in) --> <property name="connection.pool_size">1</property> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.mysqldialect</property> <!-- Enable Hibernate's automatic session context management --> <property name="current_session_context_class">thread</property> <!-- Disable the second-level cache --> <property name="cache.provider_class">org.hibernate.cache.nocacheprovider</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <!-- Drop and re-create the database schema on startup --> <property name="hbm2ddl.auto">update</property> <!-- Mapping files --> <mapping resource="user.hbm.xml"/> <mapping resource="task.hbm.xml"/> </session-factory> </hibernate-configuration>

hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- Database connection settings --> <property name="connection.driver_class">com.mysql.jdbc.driver</property> <property name="connection.url">jdbc:mysql://localhost/ifsp</property> <property name="connection.username">usr_ifsp</property> <property name="connection.password">xxxxx</property> <!-- JDBC connection pool (use the built-in) --> <property name="connection.pool_size">1</property> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.mysqldialect</property> <!-- Enable Hibernate's automatic session context management --> <property name="current_session_context_class">thread</property> <!-- Disable the second-level cache --> <property name="cache.provider_class">org.hibernate.cache.nocacheprovider</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <!-- Drop and re-create the database schema on startup --> <property name="hbm2ddl.auto">update</property> <!-- Mapping files --> <mapping resource="user.hbm.xml"/> <mapping resource="task.hbm.xml"/> </session-factory> </hibernate-configuration> <property name="connection.driver_class">com.mysql.jdbc.driver</property> <property name="connection.url">jdbc:mysql://localhost/ifsp</property> <property name="connection.username">usr_ifsp</property> <property name="connection.password">xxxxx</property>

hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- Database connection settings --> <property name="connection.driver_class">com.mysql.jdbc.driver</property> <property name="connection.url">jdbc:mysql://localhost/ifsp</property> <property name="connection.username">usr_ifsp</property> <property name="connection.password">xxxxx</property> <!-- JDBC connection pool (use the built-in) --> <property name="connection.pool_size">1</property> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.mysqldialect</property> <!-- Enable Hibernate's automatic session context management --> <property name="current_session_context_class">thread</property> <!-- Disable the second-level cache --> <property name="cache.provider_class">org.hibernate.cache.nocacheprovider</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <!-- Drop and re-create the database schema on startup --> <property name="hbm2ddl.auto">update</property> <!-- Mapping files --> <mapping resource="user.hbm.xml"/> <mapping resource="task.hbm.xml"/> </session-factory> </hibernate-configuration> <mapping resource="user.hbm.xml"/> <mapping resource="task.hbm.xml"/>

task.hbm.xml <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="ifsp.dw2.aula05.beans.task" table="dw2_tasks"> <id name="id" type="int" column="id" > <generator class="native"/> </id> <property name="userid"> <column name="user_id" /> </property> <property name="title"> <column name="title" /> </property> <property name="description"> <column name="description"/> </property> </class> </hibernate-mapping>

task.hbm.xml <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="ifsp.dw2.aula05.beans.task" table="dw2_tasks"> <id name="id" type="int" column="id" > <generator class="native"/> </id> <property name="userid"> <column name="user_id" /> </property> <property name="title"> <column name="title" /> </property> <property name="description"> <column name="description"/> </property> </class> </hibernate-mapping>

task.hbm.xml <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="ifsp.dw2.aula05.beans.user" table="dw2_users" > <id name="id" type="int" column="id" > <generator class="native"/> </id> <property name="firstname"> <column name="first_name" /> </property> <property name="lastname"> <column name="last_name"/> </property> </class> </hibernate-mapping>

task.hbm.xml <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="ifsp.dw2.aula05.beans.user" table="dw2_users" > <id name="id" type="int" column="id" > <generator class="native"/> </id> <property name="firstname"> <column name="first_name" /> </property> <property name="lastname"> <column name="last_name"/> </property> </class> </hibernate-mapping>

Task.java package ifsp.dw2.aula05.beans; public class Task { private Integer id; private Integer userid; private String title; private String description; public Integer getid() { return id; public void setid(integer id) { this.id = id; public Integer getuserid() { return userid; public void setuserid(integer userid) { this.userid = userid; public String gettitle() { return title; public void settitle(string title) { this.title = title; public String getdescription() { return description; public void setdescription(string description) { this.description = description;

User.java package ifsp.dw2.aula05.beans; public class User { private Integer id; private String firstname; private String lastname; public Integer getid() { return id; public void setid(integer id) { this.id = id; public String getfirstname() { return firstname; public void setfirstname(string firstname) { this.firstname = firstname; public String getlastname() { return lastname; public void setlastname(string lastname) { this.lastname = lastname;

HibernateUtil.java package ifsp.dw2.aula05; import org.hibernate.sessionfactory; import org.hibernate.cfg.configuration; public class HibernateUtil { private static final SessionFactory sessionfactory = buildsessionfactory(); @SuppressWarnings("deprecation") private static SessionFactory buildsessionfactory() { try { // Create the SessionFactory from hibernate.cfg.xml return new Configuration().configure().buildSessionFactory(); catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); public static SessionFactory getsessionfactory() { return sessionfactory;

HibernateUtil.java

HibernateUtil.java private void adduser(string firstname, String lastname) { Transaction trns = null; Session session = HibernateUtil.getSessionFactory().openSession(); try { trns = session.begintransaction(); User user = new User(); user.setfirstname(firstname); user.setlastname(lastname); session.save(user); session.gettransaction().commit(); catch (RuntimeException e) { if(trns!= null){ trns.rollback(); e.printstacktrace(); finally{ session.flush(); session.close();

HibernateUtil.java private void updatelastname(int id, String lastname) { Transaction trns = null; Session session = HibernateUtil.getSessionFactory().openSession(); try { trns = session.begintransaction(); String hqlupdate = "update User u set u.lastname = :newlastname where u.id = :oldid"; int updatedentities = session.createquery( hqlupdate ).setstring( "newlastname", lastname ).setinteger( "oldid", id ).executeupdate(); trns.commit(); catch (RuntimeException e) { if(trns!= null){ trns.rollback(); e.printstacktrace(); finally{ session.flush(); session.close();

Atividade http://www.dc.ufscar.br/~gustavo.poli/