ALTO DESEMPENHO UTILIZANDO FRAMEWORK HIBERNATE E PADRÃO JAVA PERSISTENCE API

Documentos relacionados
MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

HIBERNATE EM APLICAÇÃO JAVA WEB

Persistência de dados com JPA. Hélder Antero Amaral Nunes

sendo bastante acessível e compreendido pelos usuários que o utilizarem.

UFG - Instituto de Informática

UM ESTUDO SOBRE OS FRAMEWORKS JSF E PRIMEFACES NO DESENVOLVIMENTO DE SOFTWARE WEB

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

NETBEANS IDE UTILIZAÇAO DE RECURSOS PARA DESENVOLVIMENTO DE PROJETO JAVA WEB

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

Aula 4. Carlos Eduardo de Carvalho Dantas

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Persistência de Dados em Java com JPA e Toplink

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Especificação do Trabalho

AULA 16 - Sistema de Arquivos

CURSO DESENVOLVEDOR JAVA Edição 2010

Introdução a Banco de Dados Aula 03. Prof. Silvestri

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

JPA Passo a Passo. Henrique Eduardo M. Oliveira henrique@voffice.com.br. Globalcode Open4Education

Integração de sistemas utilizando Web Services do tipo REST

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento de 4ª geração Terceirização

WebApps em Java com uso de Frameworks

Struts 2 : Projeto e Programação Editora: Ciência Moderna Autor: Antunes Budi Kurniawan Número de páginas: 600

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

Java para WEB com Hibernate e Struts 2. Duração 52 horas/aula. Objetvo

Persistindo dados com TopLink no NetBeans

Auditoria Avançada de Persistência com Hibernate, JPA e Envers

Objetivos Específico

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

INE 5613 Banco de Dados I

17/10/2008. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Redes de Computadores

3 Qualidade de Software

2. Conceitos e Arquitetura de Bancos de Dados

Curso de Especialização em Tecnologia da Informação. Engenharia de Software

PLANO DE ENSINO INSTITUTO FEDERAL SUL-RIO-GRANDENSE CAMPUS SAPUCAIA DO SUL PRÓ-REITORIA DE ENSINO

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados

Desmistificando o Programa de Computador

Unidade II MODELAGEM DE PROCESSOS

UTILIZANDO BLOG PARA DIVULGAÇÃO DO PROJETO MAPEAMENTO DE PLANTAS MEDICINAIS RESUMO

UFG - Instituto de Informática

Educação é o primeiro passo para desenvolver a segurança e saúde no trabalho.

COMO VAI A CÂMARA? Uma proposta de uso de dados abertos

Software Livre e Engenharia Elétrica

VIGDENGUE - SISTEMA DE APOIO AO ACOMPANHAMENTO E VIGILÂNCIA DE CASOS NOTIFICADOS DE DENGUE

GBD PROF. ANDREZA S. AREÃO

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Sistemas Distribuídos

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA CIÊNCIA DA COMPUTAÇÃO LINGUAGENS PARA APLICAÇÃO COMERCIAL. Java Peristence API 1.

Soluções via.net para otimização de processos paramétricos com Autodesk Inventor.

Manual de Procedimentos para Desenvolvimento de Softwares

PLANO DE CONTINGÊNCIA DE BANCO DE DADOS

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

Mapeamento Lógico/Relacional com JPA

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

UFG - Instituto de Informática

Documento de Projeto de Sistema

Auditando persistência com JPA

INTRODUÇÃO. Diferente de Bando de Dados

Teste de Software: Um Breve Estudo do Importante Processo no Desenvolvimento de Softwares


ATIVIDADES PRÁTICAS SUPERVISIONADAS

NORMA TÉCNICA E PROCEDIMENTOS GERAIS PARA ADMINISTRAÇÃO DO BANCO DE DADOS CORPORATIVO

XI Encontro de Iniciação à Docência

Utilizando os Diagramas da UML (Linguagem Unificada de Modelagem) para desenvolver aplicação em JSF

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

Sistemas de Arquivos NTFS, FAT16, FAT32, EXT2 e EXT3

Persistência em Software Orientado a Objetos:

ALGORITMOS E FLUXOGRAMAS

EMENTAS DAS DISCIPLINAS

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE

JPA: Persistência padronizada em Java

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ TABELIÃO INTERFACE ADMINISTRATIVA MANUAL DE PRODUÇÃO

Trabalho 7 Fila de prioridade usando heap para simulação de atendimento

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Palavra chaves: Piff Geometrico. Sólidos Geométricos. Geometria Espacial..

Questionário de Avaliação de Maturidade Setorial: Modelo PRADO-MMGP

Universidade Federal de Santa Catarina Departamento de Informática e Estatística Bacharelado em Sistemas de Informação

MÍDIAS NA EDUCAÇÃO Introdução Mídias na educação

PLANO DA SITUAÇÃO DE APRENDIZAGEM CURSOS TÉCNICOS. 2. Tipo Estudo de Caso X Situação Problema Pesquisa Projeto

SISTEMA DE GESTÃO DE PRODUÇÃO DE EVENTOS

TÉCNICAS DE PROGRAMAÇÃO

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza

C O B I T Control Objectives for Information and related Technology

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

DEPARTAMENTO DE CIÊNCIAS HUMANAS CURSO DE LETRAS (PORTUGUÊS/INGLÊS E SUAS LITERATURAS) REGULAMENTO DE ESTÁGIO DO CURSO DE LETRAS

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)?

Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes

Transcrição:

ALTO DESEMPENHO UTILIZANDO FRAMEWORK HIBERNATE E PADRÃO JAVA PERSISTENCE API Tiago Henrique Gomes da Silva Balduino 1, Ricardo Ribeiro Rufino 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil tiagobalduino77@gmail.com ricardo@unipar.br Resumo. Este artigo constitui em uma descrição do framework hibernate utilizando a especificação Java Persistence API que visa vantagens e persistência dos objetos em um banco de dados relacional. A performance adquirida nos projetos e a otimização do tempo gasto no desenvolvimento são de estrema importância no ambiente de trabalho de uma organização. 1. Introdução O Hibernate é uma ferramenta de mapeamento objeto relacional para a linguagem Java, seu principal objetivo é transformar os dados tabulares de um banco de dados em um grafo de objetos definido pelo desenvolvedor [Linhares, 2008]. Ao utilizar a ferramenta, a tarefa de desenvolvimento se torna mais fácil devido ao fato de não ter que implementar muito do código de acesso ao banco de dados e de SQL que ele faria sem a utilização do framework. Apesar de todas as vantagens de utilização da ferramenta alguns sistemas fazem o uso de sua lógica de programação diretamente no banco de dados através de stored procedures e triggers. Nesses tipos de aplicações o framework não possui utilidade, ou seja, é mais indicado para aplicações que possuem a maior parte da sua lógica de programação na própria aplicação Java. O objetivo do trabalho é mostrar o quanto o framework de persistência Hibernate utilizando o padrão JPA, contribui para o desenvolvimento de um projeto. Ao aperfeiçoar o tempo gasto para digitar diversos códigos, o programador fica com mais tempo livre para realizar outras atividades durante o projeto, com o tempo adquirido mais aplicações podem se beneficiar através de um curto prazo de entrega. 2. Metodologia Para o desenvolvimento do trabalho foram usadas pesquisas em livros, artigos e sites da internet com o intuito de expressar de forma clara e objetiva os requisitos. O aprendizado adquirido fez com que o trabalho no desenvolvimento de aplicações utilizando Hibernate e JPA se tornasse mais objetivo e com clareza das informações sobre o desenvolvimento no dia-a-dia.

A intenção de entender o processo que ocorre durante o desenvolvimento de uma aplicação utilizando esses recursos, Hibernate e JPA, faz com que a produtividade aumente gradativamente conforme o nível de conhecimento sobre o assunto. 3. Desenvolvimento 3.1. Utilização do Padrão JPA e Mapeamento Objeto Relacional A JPA é uma API da plataforma Java para a persistência de dados, Gavin King foi líder da primeira versão da especificação, também foi o criador do Hibernate junto a outros desenvolvedores. Java Persistence API, é popularmente conhecida como JPA, é implantada por frameworks que querem seguir o padrão. A JPA faz uso de mapeamento objeto relacional para objetos Java e beans de entidade [King, 2005]. O mapeamento objeto relacional nada mais é, do que persistir de maneira automática e transparente os objetos de um aplicativo para tabelas de um banco de dados relacional [Bauer, 2007]. A Figura-1 ilustra o mapeamento dos objetos do tipo veículo na tabela de um banco de dados, se a aplicação desejar saber qual se encontra no ano de 2005, então o objeto que tem por modelo Uno é retornado [Fernandes, 2007]. Figura 1 - Exemplo de mapeamento de tipos básicos Fonte: [Fernandes, 2007 p.06] Usando o mapeamento objeto relacional o programador evita problemas de como mapear hierarquias e relações, o ajuda a recuperar os dados das associações de forma eficiente e rápida, gerencia as transações e trata como devem ser as classes persistentes. 3.2. Anotações e Persistência As anotações representam metadados que no decorrer do código fonte são ignoradas pelo compilador, uma anotação é definida com uma @ (arroba) no começo do símbolo em um código a partir da versão Java SE 5.0 [Fernandes, 2007].

Para definir uma propriedade como identificador de um objeto deve-se anotar com @Id, assim como anotar uma entidade com @Entity para persistir através de uma tabela no banco de dados. Para representar os relacionamentos usam-se anotações como @OneToOne (um para um), @ManyToOne (muitos para um) e @ManyToMany (muitos para muitos). Os objetos que são persistidos possuem uma referência no banco de dados, assim permite que seu estado seja recuperado por um processo na fase de execução da aplicação. Através da persistência, os dados ficam armazenados e sempre que a aplicação for iniciada os mesmos podem ser recuperados [King, 2005]. Um usuário que faz uso de uma aplicação pode, por exemplo, controlar os gastos da sua empresa. Ele por sua vez fornece todas as informações como dados de entrada para que a aplicação gere os relatórios de desempenho mensal. Após verificar seu relatório o mesmo resolve desligar o computador. Após um período o usuário obteve novos gastos da sua empresa e resolve ligar o computador para realizar novas análises. Se a aplicação não armazenar de alguma forma os primeiros gastos, o mesmo teria que informá-los outra vez para em seguida, realizar os novos lançamentos e só então fazer sua análise, assim tornando a utilização do sistema não eficiente e constrangedora. Através da persistência tal problema não ocorreria, a cada lançamento os dados são persistidos pelo usuário em um banco de dados relacional, aumentando a eficiência da aplicação e anulando o retrabalho. Um sistema que é desenvolvido com Hibernate tem um melhor controle das informações e também uma melhora na organização da empresa, ou seja, durante o desenvolvimento a menos preocupação do código SQL mantendo sempre um bom funcionamento das aplicações. A Figura 2 mostra como os objetos são persistidos com o funcionamento do framework Hibernate. Figura 2 - Funcionamento do Framework Hibernate Fonte: [Suavé, 2000].

Objetos transientes são mantidos apenas em memória e não possui uma relação com as tabelas do banco de dados. O objeto transiente é descartado sempre que a aplicação finaliza sua referência. Objetos transientes são utilizados por não ocupar espaço no banco de dados e são de enorme eficiência na otimização da aplicação [King, 2005]. 3.3. Vantagens da Utilização do Hibernate Usando um framework de persistência o ganho de performance da aplicação aumenta de forma gradativa pois a repetição de códigos para a persistência diminui, assim o tempo de conclusão do projeto se torna menor. A configuração do Hibernate é feita por arquivos XML, onde fica especificado o mapeamento dos dados e detalhes sobre as conexões com o banco de dados. Através do Hibernate é possível fazer anotações sobre o mapeamento nas classes que serão mapeadas no sistema, assim substituindo vários arquivos XML que as classes usariam para realizar o mapeamento, exceto o arquivo de configuração do Hibernate [Fernandes, 2005]. Uma das maiores novidades na versão 3 é o suporte a filtros parametrizados, que é uma característica para se obter um grafo que é apenas um subconjunto do banco de dados, com a principal utilidade de lidar com dados temporais, versionados, regionais ou sujeitos a permissões [King, 2005]. Na figura 3 os constituintes do Hibernate usam um banco de dados com componentes de configuração, assim fornecendo os objetos persistentes ao desenvolvedor da aplicação Java podendo assegurar o transporte de dados entre os objetos e nas tabelas do banco de dados [Kioskea, 2014]. Figura 3 - Arquitetura compreensiva do Hibernate Fonte: [Kioskea, 2014]. 4. Considerações Finais O Hibernate tem contribuído de forma gradativa tanto nos projetos como dentro das

organizações visando o desempenho das aplicações. A possibilidade de escrever a maior parte dos códigos SQL faz com que a aplicação seja otimizada e de grande satisfação pelos desenvolvedores e clientes. Podemos concluir que a especificação JPA tem como objetivo principal abstrair ainda mais o código SQL e ter uma melhor facilidade com a utilização do framework Hibernate. Este artigo abordou das utilizações e padrões para o uso do framework Hibernate no qual seus recursos são extremamente eficientes no decorrer de uma aplicação, também foi discutido sobre o mapeamento objeto relacional visando seus conceitos e relações com o framework. Referências Linhares, M. (2008). Introdução ao Hibernate 3. Disponível em: <http://www.guj.com.br/content/articles/hibernate/intruducao_hibernate3_guj.pdf> Acesso em: 01 junho 2013. Bauer, C. (2007) Java Persistence com Hibernate. 1. ed. Rio de Janeiro: Ciência moderna, 872.p. Fernandes, L., R. (2005). Construindo aplicações utilizando Thinlet e Hibernate- Parte 02, Disponível em: <http://www.imasters.com.br/artigo/3510/oracle/construindo_aplicacoes_utilizando_thi nlet_e_hibernate_-_parte_02/>, Acesso em: 15 Agosto 2014. Fernandes, R.G., Lima, G., A., F. (2007). Hibernate com anotações. Disponível em: < http://www.ufpi.br/subsitefiles/pasn/arquivos/files/hibernate.pdf> Acesso em: 15 Agosto 2014. Kioskea. (2014). Hibernate Primeira Parte: apresentação. Disponível em: < http://pt.kioskea.net/faq/10525-hibernate-primeira-parte-apresentacao >Acesso em: 15 Agosto 2014. Bauer, C., King, G. (2005). Hibernate em ação. Rio de Janeiro: Ciência Moderna, 530p. Suavé, J., P. (2000). Persistência usando hibernate. Disponível em: < http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/hibernate/hibernate.htm > Acesso em: 15 Agosto 2014.