HIBERNATE EM APLICAÇÃO JAVA WEB



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

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

UFG - Instituto de Informática

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

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

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

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

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

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

JPA: Persistência padronizada em Java

UFG - Instituto de Informática

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

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

Fernando Kasten Peinado

Documento de Arquitetura

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

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

Parte II Persistência entre Modelos de Dados

Desenvolvimento de aplicações web com JSP

2 a Lista de Exercícios

4 Um Exemplo de Implementação

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

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

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

3 SCS: Sistema de Componentes de Software

UFG - Instituto de Informática

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

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

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

PAMIN PATRIMÔNIO, MEMÓRIA E INTERATIVIDADE

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

Sistemas Distribuídos

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Persistência de Dados em Java com JPA e Toplink

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

CURSO DESENVOLVEDOR JAVA Edição 2010

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

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Conceitos de Banco de Dados

LINGUAGEM DE BANCO DE DADOS

Documento de Projeto de Sistema

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

Banco de Dados. Sérgio Luiz Ruivace Cerqueira

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

Técnicas e ferramentas de ataque. Natiel Cazarotto Chiavegatti

UFG - Instituto de Informática

Gestão de Relacionamento com o Cliente CRM

Persistência em Software Orientado a Objetos:

Modelos de Arquiteturas. Prof. Andrêza Leite

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

WebApps em Java com uso de Frameworks

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

Manual de Procedimentos para Desenvolvimento de Softwares

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

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Documento de Análise e Projeto VideoSystem

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS

Objetivos Específico

Persistência e Banco de Dados em Jogos Digitais

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

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados

08/04/2013. Agenda. O Sistema CACHÉ. O Sistema CACHÉ. O Sistema CACHÉ. O Sistema CACHÉ

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

UFG - Instituto de Informática

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

Especificação do Trabalho

A Grande Importância da Mineração de Dados nas Organizações

Disciplina: Tecnologias de Banco de Dados para SI s

RevISTa: Publicação técnico-científica do IST-Rio. nº 05 Data: Dezembro / 2012 ISSN

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Introdução ao Modelos de Duas Camadas Cliente Servidor

Análise e Projeto Orientados a Objetos Aula IV Requisitos. Prof.: Bruno E. G. Gomes IFRN

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro Maio/ 2015

BIG DATA: UTILIZANDO A INTERNET PARA TOMADA DE DECISÕES

PADRÕES PARA O DESENVOLVIMENTO NA WEB

Projeto de Arquitetura

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Documento de Requisitos Projeto SisVendas Sistema de Controle de Vendas para Loja de Informática.

Documentação da Ferramenta EMap Edimar Manica

e-stf WebServices Processo Eletrônico Smart Client Manual de Instalação

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

2.0.0.X. Storage Client. TecnoSpeed. Tecnologia da Informação. Manual do Storage Client

Transcrição:

HIBERNATE EM APLICAÇÃO JAVA WEB Raul Victtor Barbosa Claudino¹, Ricardo Ribeiro Rufino¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil victtor.claudino@gmail.com, ricardo@unipar.br Resumo: Este trabalho visa mostrar o conceito e a estrutura usada pelo framework Hibernate, com o objetivo de citar algumas de suas funcionalidades e especificações, além de mencionar algumas vantagens e desvantagens, baseandose em artigos, sites e documentos especializados no assunto. O framework pesquisado se mostrou um excelente auxilio no desenvolvimento de aplicações. 1. Introdução Bauer e King [Bauer; King, 2005] explicam que o Hibernate é um framework de persistência que tem como função armazenar objetos Java em bases de dados relacionais ou fornecer uma visão orientada a objetos de dados relacionais existentes. Isso só é possível pela utilização de arquivos de configuração XML que a framework usa para mapear os dados contidos em uma base de dados relacional, para os atributos de uma classe Java. O Hibernate é um framework de mapeamento objeto relacional para aplicações Java, ou seja, é uma ferramenta para mapear classes Java em tabelas do banco de dados e vice-versa. É bastante poderoso e dá suporte ao mapeamento de associações entre objetos, herança, polimorfismo, composição e coleções [Magalhães; Da Silva, 2013]. O Hibernate não apresenta apenas a função de realizar o mapeamento objeto relacional, mais também disponibiliza um poderoso mecanismo de consulta de dados, permitindo uma redução considerável no tempo de desenvolvimento da aplicação. 2. Metodologia Este trabalho foi realizado a partir da leitura e revisão de artigos científicos, sites da internet especializados no tema, trabalhos de conclusão de curso e livros que juntos a uma analise apurada sobre o tema, formaram um material elaborado que auxilia no desenvolvimento, e em um melhor entendimento do assunto escolhido. 3. Arquitetura O Hibernate apresenta uma arquitetura formada basicamente por um conjunto de interfaces. A Figura 1 tem como função apresentar as interfaces mais importantes nas camadas de negócio e persistência. A camada de negócio aparece acima da camada de persistência por atuar como cliente da mesma. É importante informar que algumas

aplicações podem não ter a separação clara entre as camadas de negócio e de persistência. De acordo com a Figura 1, as interfaces são classificadas como: Interfaces responsáveis por operações de criação, deleção, consulta e atualização no banco de dados: Session, Transaction e Query; Interface utilizada pela aplicação para configurar o Hibernate: Configuration; Interfaces responsáveis por realizar a interação entre os eventos do Hibernate e a aplicação: Interceptor, Lifecycle e Validatable. Interfaces que permitem a extensão das funcionalidades de mapeamento do Hibernate: UserType, CompositeUserType, IdentifierGenerator. O Hibernate também interage com APIs já existentes do Java: JTA, JNDI e JDBC [Fernandes; Lima, 2007]. Figura 1: Arquitetura do Hibernate [Fernandes; Lima, 2007].

De todas as interfaces apresentadas na Figura 1, as principais são: Session, SessionFactory, Transaction, Query, Configuration. 3.1 Session O objeto Session tem a função de facilitar a comunicação da aplicação com a persistência, através de uma conexão JDBC. É um objeto leve de ser criado, não deve ter um tempo de vida que se estenda por toda a aplicação, por não se tratar de um threadsafe. Um Session possui um cache local de objetos recuperados na sessão. Com ele é possível criar, remover, atualizar e recuperar objetos persistentes [Fernandes; Lima, 2007]. 3.2 SessionFactory O SessionFactory é aquele que mantém o mapeamento objeto relacional na memória. Permite a criação de objetos Session dos quais os dados são acessados. Um objeto SessionFactory é threadsafe, no entanto deve-se existir apenas uma única instância dele na aplicação, por ser muito pesado, não permitindo ser criado várias vezes [Fernandes; Lima, 2007]. 3.3 Configuration O Configuration é utilizado para realizar as configurações iniciais do Hibernate. Com ele, define-se, por exemplo: o driver do banco de dados a ser utilizado, o dialeto, o usuário e senha do banco, entre outras. É a partir de uma instância desse objeto que se indica como os mapeamentos entre classes e tabelas de banco de dados devem ser feitos [Fernandes; Lima, 2007]. 3.4 Transaction A interface Transaction é utilizada para representar uma unidade indivisível de uma operação de manipulação de dados. O uso dessa interface em aplicações que usam Hibernate é opcional. Essa interface abstrai a aplicação dos detalhes das transações JDBC, JTA ou CORBA [Fernandes; Lima, 2007]. 3.5 Interfaces Criteria e Query As interfaces Criteria e Query são utilizadas para realizar consultas ao banco de dados [Fernandes; Lima, 2007]. 4. Classes Persistentes As classes persistentes de uma aplicação são aquelas que programam as entidades de domínio de negócio. O Hibernate trabalha associando cada tabela do banco de dados a um POJO (Plain Old Java Object). POJO s são objetos Java que seguem a estrutura de

JavaBeans (construtor padrão sem argumentos, e métodos getters e setters para seus atributos) [Fernandes; Lima, 2007]. 5.Vantagens e Desvantagens Serão apresentadas algumas das vantagens e desvantagens na tabela 1, da utilização do Hibernate no desenvolvimento da aplicação: Tabela 1. Vantagens e Desvantagens do Hibernate. VANTAGENS Diminui os códigos de persistência. Abstrai o banco de dados, através do mapeamento realizado pelo hibernate. DESVANTAGENS Na criação das Queries complexas, pois precisa entender todos os critérios. Precisa colocar varias bibliotecas na aplicação, sendo que já uma vez utilizada, precisa se parametrizar novamente. Velocidade no desenvolvimento da aplicação. Melhora o tratamento de gerenciamento de recursos. 6. Persistência com Banco de Dados O procedimento de armazenamento, manutenção, configuração de algum objeto que interage com o banco de dados de maneira transparente é denominada de persistência, ou seja, a persistência é uma funcionalidade do hibernate, que tem a função de interagir com uma biblioteca de dados, integrada em vários gerenciadores do banco, tais como o Oracle, PostgreSQL e o MySQL, além de disponibilizar diversos assistentes que facilitam o trabalho do desenvolvedor [Magalhães; Da Silva, 2013]. 7. S.A.V.A. O sistema de gerenciamento para academias (SAVA) tem como função gerenciar todos os cadastros e movimentos realizados pela empresa, que antes era realizado pelo proprietário que armazenava em cadernos de anotações e fichas as informações da empresa. O software a ser desenvolvido propõe substituir esse método e tem como objetivo controlar o fluxo de clientes, gerenciar contas a pagar e a receber, controle de mensalidades, gerar relatórios detalhados destas atividades, alem de diminuir erros e organizar as informações de maneira segura e de fácil acesso.

8. Conclusão Com a elaboração deste artigo conclui que com os avanços tecnológicos a framework hibernate é um grande facilitador no desenvolvimento de software, ao observar as vantagens oferecidas referentes à portabilidade das tabelas com o banco de dados. Constata-se então que o hibernate proporciona a aplicação realizar o mapeamento com rapidez, ganhando tempo no desenvolvimento e na organização das tabelas, gerando um alto desempenho do banco na aplicação. Todas essas funcionalidades juntamente com uma arquitetura bem elaborada, e um excelente processo de persistência com o banco de dados, fez desse framework essencial no desenvolvimento do SAVA. 9. Referencias Magalhães, Da Silva. (2013) Utilização do Framework Hibernate em aplicação JAVA WEB. Disponível em: <http://web.unipar.br/~seinpar/2013/artigos/carlos%20filipe%20magalhaes.pdf.pdf> acessado em: 23/07/2015. Soares Filho. (2006) UTILIZAÇÃO DO FRAMEWORK HIBERNATE PARA MAPEAMENTO OBJETO/RELACIONAL NA CONSTRUÇÃO DE UM SISTEMA DE INFORMAÇÃO. Disponível em: <http://dsc.inf.furb.br/arquivos/tccs/monografias/2006-1odilonherculanosoaresfilhovf.pdf> acessado em: 23/07/2015. Fernandes, Lima. (2007) Hibernate com Anotações. Disponível em: <http://www.futurepages.org/wiki/lib/exe/fetch.php?media=quickstart:hibernate_anotacoes.pdf> acessado em: 23/07/2015. BAUER, KING. (2005) Hibernate in action. Disponível em: <http://www.cpe.ku.ac.th/~plw/oop/e_book/hibernate_in_action.pdf> acessado em: 20/06/2015.