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

Documentos relacionados
MAPEAMENTO OBJETO RELACIONAL COM HIBERNATE EM APLICAÇÕES JAVA WEB

Vamos falar de Hibernate?

Hibernate Anotations

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

Mecanismo de Persistência

DW2 Desenvolvimento Web 2

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

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

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

HIBERNATE EM APLICAÇÃO JAVA WEB

Utilização do Framework Hibernate na criação de um sistema web para avaliação de fornecedores

One-to-Many. Many-to-One. Many-to-Many

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

Frameworks funcionais para JSF que proporciona o desenvolvimento de aplicações computacionais WEB

3 Tecnologias Relacionadas

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

Framework Hibernate/JPA

Desenvolvimento Web com Java. Sérgio Lopes Caelum -

POO Programação Orientada a Objetos

Utilizando Swing com Hibernate

Conexão com Banco de Dados

HIBERNATE E JPA: CONCEPTS FOR USE

Revisão de conceitos Tópicos Avançados em TI Prof. Rossano Pablo Pinto Fevereiro/ v0.1

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 DE APLICAÇÕES COM JAVA 2EE E UML

NextFlow: Um Framework para Mapeamento de Processos de Negócio e Objetos

Um Arcabouço Orientado por Aspectos para Implementação Automatizada de Persistência

4 Processo de Transformação

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

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

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

Hibernate na sua aplicação JavaWeb

Persistência BD / drivers

Objetos e Componentes Distribuídos: EJB

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

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

Objetos e Componentes Distribuídos: EJB e CORBA

FrameWork para Manipulação de Dados nos paradigmas Relacional e Textual

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

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

5 Trabalhos Relacionados

Singleton e Adapter. Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé)

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

Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator

Introdução a Computação em Nuvem

Padrão de Projeto State

PROCESSO SELETIVO PARA ESTÁGIO REMUNERADO NO TRIBUNAL DE CONTAS DO ESTADO DO MARANHÃO ENSINO SUPERIOR - INFORMÁTICA

Testes Automatizados com Banco de Dados

Ferramenta MVCase Uma Ferramenta Integradora de Tecnologias para o Desenvolvimento de Componentes Distribuídos

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

PERSISTÊNCIA EM JAVA. Introdução. Conexão a banco de dados através do driver JDBC UNIDADEE

Mapeamento Lógico/Relacional com JPA

JPA Com Hibernate. Paulo Ricardo Lisboa de Almeida. Dados Transientes e Relacionamentos. 1 Universidade Positivo

Session Bean Stateful

Conexão do Banco de Dados localhost

Testes Automatizados e Bancos de Dados

Injeção de Dependências e Spring

Banco de dados orientados a objetos e Java: : uma visão prática

Desenvolvimento de um Framework para replicação de dados entre bancos heterogêneos

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

Impedância em Bancos de Dados

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

Objetivos. Responder o que é Java; Mostrar as vantagens e desvantagens do Java; Compilar e executar um programa simples.

MIDDLEWARE PARA A COMUNICAÇÃO DE DADOS ENTRE SISTEMAS DISTRIBUÍDOS COM WS SECURITY. CAIO RENAN HOBUS Orientador: Jhony Alceu Pereira

Introdução ao Zend Framework 2

Particionamento de Banco com o Hibernate Shards

Mapeamento Objeto-Relacional (Object Relational Mapping)

JPA: Persistência padronizada em Java

Agilizando o processo de redeploy de aplicações Java

Uma Abordagem para o Controle da Evolução de Software no Desenvolvimento Orientado a Modelos

UNIVERSIDADE FEEVALE ANDERSON BUENO TRINDADE CONVERSÃO DE UM DIAGRAMA E-R PARA UMA BASE DE DADOS MONGODB (NOSQL)

DESENVOLVENDO APLICAÇÕES MULTIPLATAFORMA PARA DISPOSITIVOS MÓVEIS UTILIZANDO IONIC E PHONEGAP

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

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

UFG - Instituto de Informática

Etc & Tal. Volume 1 - Número 1 - Dezembro 2008 SBC HORIZONTES 57

Desenvolva de qualquer sistema operacional para qualquer sistema operacional. Sem limites.

Padrões de Testes Automatizados. Exame de Defesa de Mestrado Paulo Cheque Bernardo Orientador: Fabio Kon DCC IME/USP 4 de julho de 2011

Criando uma aplicação web

TUTORIAL INTEGRAÇÃO SPRING, HIBERNATE E MYSQL

CURSO DE TÉCNICO DE INFORMÁTICA - PLANO DE DISCIPLINA/2016 PROGRAMAÇÃO PARA MODELAGEM DE SISTEMA

Arquitetura dos Sistemas Institucionais. Diretoria de Sistemas Superintendência de Informática UFRN

Documento de Arquitetura de Software- SGE

Encapsulamento. Separa a interface de um objeto dos detalhes de seu funcionamento interno. Caixa preta 2/27

Desenvolvimento Web II

Módulo III Camada de Persistência

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

FERRAMENTA DE GERENCIAMENTO PARA O SGBD MYSQL

Sistemas da Informação. Banco de Dados I. Edson Thizon

Configuração. Utilitário de Configuração Baseado na Web

PROTÓTIPO DE UM SISTEMA DE IMPORTAÇÃO PARA UMA AGÊNCIA DE TRANSPORTES INTERNACIONAIS

Impedância objeto relacional O atrito natural entre os dois mundos

Framework.NET. Linguagem de Programação III. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento Acadêmico de Informática Campus Monte Castelo

Transcrição:

UTILIZAÇÃO DO FRAMEWORK HIBERNATE NA CONSTRUÇÃO DE UM SISTEMA DE INFORMAÇÃO Anderson Carlos Lopes 1, Luiz Fernando Braga Lopes 1 Universidade Paranaense (UNIPAR) Paranavaí - PR Brasil andersoncarloslopes@hotmail.com, lfbraga@unipar.br Resumo. Acessar bancos de dados relacionais através da orientação a objetos é requisito comum das aplicações atuais. Enquanto o modelo relacional continuar presente e os bancos de dados orientados a objetos não se tornarem populares continuará sendo necessário o mapeamento objeto-relacional. Com isso tornou-se necessária motivar a construção de frameworks que auxiliem nesse processo, dentre eles está o framework open-source hibernate e esse trabalho visa mostrar como o mesmo torna-se facilitador na construção de projetos de sistemas de informação. 1. Introdução Atualmente com a necessidade cada vez maior de desenvolvimento de sistemas complexos e que prezem pela facilidade de manutenção dos programas e reaproveitamento de código-fonte, muitos desenvolvedores e analistas de sistema tem optado pela análise e desenvolvimento orientados a objetos. Mesmo sendo um consistente de desenvolvimento alguns fatores contribuem a dificultar a junção de tecnologias como modelo de dados relacionais e modelos orientados a objetos, que são comumente utilizados em um mesmo projeto. Segundo Bauer e King [2005, p.11] os bancos de dados relacionais estão fortemente presentes no núcleo de empresas modernas, sendo utilizados em larga escala em projetos de softwares orientados a objetos tornando-se necessário um mapeamento entre as tabelas do banco de dados e os objetos da aplicação. Este trabalho visa fazer um estudo do framework open-source Hibernate, apresentando seus principais recursos, fazer uma análise geral sobre seu funcionamento e utilizá-lo para construção de um exemplo simples de sistema de informação, o objetivo é verificar se sua utilização irá realmente trazer ganhos nas fases de análise, projeto, desenvolvimento e manutenção de sistemas. 2. Hibernate Bauer e King [2005, p.19] explicam que o Hibernate é um framework de persistência que possui como finalidade armazenar objetos Java em bases de dados relacionais ou fornecer uma visão orientada a objetos de dados relacionais existentes. Isso ocorre porque o framework utiliza arquivos de configuração XML para fazer o mapeamento dos dados contidos nas colunas de uma tabela em uma base de dados relacional para os atributos de uma classe Java.

A figura 1 ilustra o funcionamento do framework no mapeamento dos objetos da aplicação para as tabelas de uma base de dados. Aplicação Objetos de Persistência Hibernate Propriedades do hibernate Mapeamento XML Banco de dados Figura 1. Arquitetura interna do hibernate O objeto persistente é passado para o hibernate que valida sua estrutura de dados através do arquivo XML de mapeamento de dados, se a estrutura de dados do objeto e da tabela na base de dados estiver compatível, o hibernate inicia uma transação na base de dados e persiste as informações. Uma aplicação orientada a objetos não trabalha diretamente com a representação tabular das entidades de negócio como mostram Bauer e King [2005, p.29], a aplicação tem seus próprios modelos das entidades de negócio. Essa abstração do conceito de tabelas de banco de dados segundo Bauer e King [2005, p.56] torna o desenvolvimento da camada de persistência de aplicações orientadas a objetos mais simples e intuitiva. 3. Mapeamento Objeto-Relacional É a tecnologia que realiza a persistência de forma automática e transparentes dos objetos em uma aplicação em tabelas de uma base de dados relacional, usando metadados para realizar a trocar de dados entre os objetos e a base de dados, [BAUER; KING, 2005, p.46] fala que o mapeamento objeto-relacional trabalha em essência com dados transformados de uma representação para outra, isto acarreta em determinada perda de desempenho. Porém, se o mapeamento objeto-relacional for executado como um middleware, há ganho significativo que não seriam possíveis sem esse tipo de persistência.

Como mostra STONEBRAKER [1996] o mapeamento objeto-relacional foi idealizado com o intuito de suprir carências do modelo relacional, oferecendo a modelagem de objetos complexos e as características que os bancos de dados orientados a objetos propunham. O foco principal está voltado ao oferecimento de uma interface orientada a objetos. 4. Hibernate na prática O hibernate estando configurado e pronto para funcionar, é necessário entender o seu mecanismo de persistência. Para o hibernate, existem três tipos de objetos, objetos transient, detached e persistent. Abaixo são relacionados: Objetos transient são objetos que não possuem representação no banco de dados, ou seja, eles ainda não estão sobre o controle do framework e podem não ser mais referenciados como qualquer outro objeto em Java. Objetos detached possuem representação no banco de dados, porém não fazem parte de uma sessão do hibernate, o que significa que o seu estado pode não estar sincronizado com o banco de dados. Objetos persistent são objetos que possuem representação no banco de dados e que ainda fazem parte de uma transação do hibernate, garantindo que o seu estado esteja sincronizado com o banco de dados. No hibernate, assim como no JDBC, existem os conceitos de sessão e transação. Uma sessão é uma conexão realizada com o banco de dados, onde pode-se executar queries, inserir, atualizar e deletar objetos, já a transação é considerada as ações a serem tomadas, uma transação faz realiza controle do que acontece e realiza um rollback, assim como uma transação do JDBC se forem localizados problemas. A figura 2 ilustra a classe SessaoHibernate que é responsável por configurar e abrir as sessões do hibernate. public class SessaoHibernate{ private static SessionFactory factory; static{ try{ factory = new Configuration(). configure(). buildsessionfactory(); catch (Exception e){ JOptionPane.showMessageDialog(null, Desculpe ocorreu um erro ao criar a sessão!!! ); factory = null; public static Session getsession(){ return factory.opensession(); Figura 2. Classe SessaoHibernate.java O bloco estático, ou seja, as chaves marcadas como static instanciam um objeto de configuração do hibernate org.hibernate.cfg.configuration, chama o método configure() que lê o arquivo hibernate.cfg.xml e depois que ele está configurado,

criamos uma SessionFactory, que é a classe responsável por abrir as sessões de trabalho do hibernate. 5. Metodologia Extensa revisão bibliográfica em materiais como livros e referências de artigos na internet foram necessários para a contribuição de realização deste trabalho. O passo posterior foi a realização abrangente de conteúdos focados nas configurações do hibernate, e posteriormente entendimento baseado na orientação de banco de dados objeto-relacional. 6. Conclusão O framework de mapeamento objeto-relacional hibernate é um facilitador no desenvolvimento de sistemas orientados a objetos. Apresenta o middleware fazendo com que a camada de persistência seja desenvolvida com certa liberdade, tanto por dar maior entendimento ao código onde o desenvolvedor abstrai o conceito de tabelas do banco de dados. Ao utilizar o framework é possível observar não só as vantagens que o mesmo proporciona, mas também os pontos fracos do hibernate. Há de se destacar a dificuldade de se fazer um mapeamento de tabelas que utilizem chave primária composta, ou seja, chave formada por dois ou mais atributos. Outro aspecto relevante é utilização em larga escala de transações que geram tráfego na rede, fazendo com que a performance seja muito abaixo do desejado.com isso, conclui-se que o framework desempenha bem a realizar persistências em banco de dados relacionais, porém para que seu desempenho seja satisfatório deve se analisar cuidadosamente em que situações o hibernate será utilizado. 7. Referências BAUER, Christian; KING, Gavin. Hibernate in action. Greenwitch: Manning Publications, 2005. DURHAM, A; JOHNSON R. A Framework for Run-time Systems and its Visual Programming Language. In: OBJECT-ORIENTED PROGRAMMING SYSTEMS, LANGUAGES, AND APPLICATIONS. San Jose, CA, October 1996 Proceedings... OOPSLA 1996 p. 20-25. Hibernate - Relational Persistence For Idiomatic Java. [S.l.] 2006. Disponível em: <www.hibernate.org> Acesso em: 25/07/2011. HOLZNER, Steven. Desvendando XML. Rio de Janeiro: Campus, 2001. SAUVÉ, Jacques Philippe. Sistemas de Informação 1. [S.l.] 2006 Disponível em: <http://www.dsc.ufcg.edu.br/~jacques/cursos/2005.1/si1/>. Acesso 25/07/2011 SOUZA, M. V. B. Estudo Comparativo entre Frameworks Java para Construção de Aplicações Web. 2004. Monografia (Conclusão de Curso de Bacharel em Ciências da Computação).Universidade Federal de Santa Maria. Santa Maria, 2004.

Sun Corporation. Java Tecnology. Disponível em: <http://java.sun.com/>acesso em: 25/07/2011. STONEBRAKER, M. Object-Relational Database Systems. Morgam Kanfman,1996 VIANA, Euricelia; BORBA, Paulo. Integrando Java com Bancos de Dados Relacionais. 2003. Monografia (Conclusão de Curso de Bacharel de Ciências da Computação). Universidade Federal de Pernambuco.