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



Documentos relacionados
HIBERNATE EM APLICAÇÃO JAVA WEB

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

O Primeiro Programa em Visual Studio.net

Persistência de Classes em Tabelas de Banco de Dados

Criar uma aplicação JPA2 com EclipseLink e H2

TUTORIAL SISTEMA DE CONTROLE DE ACESSO

MANUAL DO ANIMAIL Terti Software

CONFIGURAÇÃO MINIMA EXIGIDA:

Microsoft Access XP Módulo Um

Java com Banco de Dados Posgree

Procedimentos para Reinstalação do Sisloc

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

NetBeans. Conhecendo um pouco da IDE

Noções de. Microsoft SQL Server. Microsoft SQL Server

Desenvolvendo Aplicações Web com NetBeans

Usando o simulador MIPS

Procedimentos para Instalação do Sisloc

JDBC Java Database Connectivity

Como funciona? SUMÁRIO

TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH!

UFG - Instituto de Informática

Configurar o Furbot no Eclipse

Nota de Aula: Utilização da IDE Code::Blocks

Sumário: Fluxo Operacional... 3 Contatos Agenda Online Reservas de Salas Tarefas... 42

MANUAL DE FTP. Instalando, Configurando e Utilizando FTP

Procedimentos de Implantação ireport x Protheus

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

Persistindo dados com TopLink no NetBeans

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Criar um novo projeto

1. 1. COMO ACESSAR O CURSO

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

GUIA INTEGRA SERVICES E STATUS MONITOR

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO

Faculdade Boa Viagem Sistemas de Informação Gerenciais EXERCÍCIO PASSO-A-PASSO PEDIDOS E CONTROLE DE ESTOQUE. Microsoft Access.

Manual de Instalação. SafeSign Standard (Para MAC OS 10.7)

Passo a Passo. WebSphere Message Broker. Fluxo como WebService

Programação de Computadores - I. Profª Beatriz Profº Israel

Caso já seja usuário do SCAW siga as instruções a partir da página X.

Tutorial para atividades do Trabalho Prático da disciplina DCC 603 Engenharia de Software

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

Utilização do Webmail da UFS

Manual de Utilização do Sistema GRServer Cam on-line (Gerenciamento de Câmeras On-line)

Instalando o J2SE 5.0 JDK no Windows 2000/XP

ANDROID APPLICATION PROJECT

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

Gerenciamento de Contatos

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE

ÍNDICE MANUAL SITE ADMINISTRÁVEL TV. 1. Introdução 2. Acessando o site administrável/webtv SITE ADMINISTRÁVEL 3. CONFIGURAÇÕES

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

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.

Instalando o Lazarus e outros sistemas de suporte. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

SISTEMA DE GERENCIAMENTO DE PROJETOS - REDMINE MANUAL DE USO

Sistema de Recursos Humanos

Para funcionamento do Netz, alguns programas devem ser instalados e alguns procedimentos devem ser seguidos. São eles:

Scriptlets e Formulários

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

Manual Operacional SIGA

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

PostgreSQL & PostGIS: Instalação do Banco de Dados Espacial no Windows 7

O Oficina Integrada é um sistema completo para o controle e gerenciamento de oficinas mecânicas. É o primeiro e único software que controla o fluxo

Processo de Controle das Reposições da loja

WorkFlow WEB Caberj v docx. Manual Atendimento Caberj

Criação de Formatos para detalhamento. Ambiente de trabalho no SOLIDWORKS

Programa EndNote. Download para teste no site: (Atualmente o EndNote está na versão 5x)

Usar Atalhos para a Rede. Logar na Rede

Manual Captura S_Line

Manual de instalação e configuração da Ferramenta Android SDK

MANUAL C R M ÍNDICE. Sobre o módulo de CRM Definindo a Campanha... 3

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Criando uma agenda simples com NetBeans 6.5

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

Procedimentos para Instalação do SISLOC

Tabela e Gráficos Dinâmicos Como estruturar dinamicamente dados no Excel

UNIVERSIDADE FEDERAL DO AMAPÁ NÚCLEO DE TECNOLOGIA DA INFORMAÇÃO. Manual de Avaliação de Desempenho Cadastro

UFG - Instituto de Informática

CONFIGURAÇÃO DE REDE SISTEMA IDEAGRI - FAQ CONCEITOS GERAIS

Upload e Download de Arquivos. Ao programador Morfik, cabe implementar em sua aplicação os mecanismos gerenciem todo o processo acima.

Núcleo de Tecnologias Interativas de Aprendizagem.

AULA 1 Iniciando o uso do TerraView

WorkFlow WEB Volkswagen v docx. Manual de Atendimento Volkswagen

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

COMO GERAR UM ARQUIVO NÃO IDENTIFICADO NO TABWIN

02 - Usando o SiteMaster - Informações importantes

Figura 1. A Classe Java

Tutorial: Webmail. Dicas de Uso e Funcionalidades 02/2015. Versão 01

Manual do Sistema "Vida Controle de Contatos" Editorial Brazil Informatica

Tutorial: Criando aplicações J2EE com Eclipse e jboss-ide

Manual do usuário. v1.0

Manual do Visualizador NF e KEY BEST

Google Drive. Passos. Configurando o Google Drive

Tutorial EPF Básico. 1)Vá a File-> New->Method Library. Escolha uma pasta para criar a Method Library.

Conexão nativa com banco de dados no Delphi

INSTALAÇÃO DO SISTEMA CONTROLGÁS

Portaria Express 3.0

Instalando software MÉDICO Online no servidor

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

Transcrição:

TUTORIAL: DESENVOLVIMENTO DE APLICAÇÕES COM O HIBERNATE NO NETBEANS Glauber da Rocha Balthazar, Fábio Mendes Ramos Guimarães, Melise Maria Veiga de Paula, Elio Lovisi Filho Bacharelado em Sistemas de Informação Faculdade Metodista Granbery (FMG) Rua Batista de Oliveira, 1145-36010-532 - Juiz de Fora MG {gbalthazar,fguimaraes}@si.granbery.edu.br,elovise@granbery.edu.br, melisepaula@gmail.com, Abstract. In this article presents the tutorial one that it an approach, of practical form is presented, the use of the Framework of Hibernate persistence in NetBeans. For this, the construction of a guided application is considered the Objects, in Java, that has access a Data base Relationary Object through an architecture developed for this type of application. After that, it is presented all the steps for the necessary configuration of the objectrelationary mapping between the application and the bank. Resumo. Neste artigo é apresentado um tutorial que aborda, de forma prática, a utilização do Framework de persistência Hibernate no NetBeans. Para isso, é proposto a construção de uma aplicação Orientada a Objetos, em Java, que acesse um Banco de Dados Objeto Relacional por meio de uma arquitetura desenvolvida para este tipo de aplicação. Em seguida, são apresentados todos os passos para a configuração necessária do mapeamento objeto-relacional entre a aplicação e o banco. INTRODUÇÃO Para PRESSMAN (2005), o software tornou-se uma das forças motoras das empresas, é ele quem dirige a tomada de decisão nos negócios. Este fato justifica a crescente importância que o processo de desenvolvimento de software vem adquirindo nos ambientes organizacionais. Contudo, atualmente, observa-se que apesar da evolução das ferramentas de apoio ao desenvolvimento de software, esta atividade ainda é considerada uma tarefa bastante complexa para os profissionais da área. Neste contexto, pode-se observa duas vertentes. De um lado, os usuários vêm se tornado cada vez mais exigentes, fato que aumenta a complexidade dos requisitos e a expectativa em relação aos resultados esperados. Além disso, as empresas têm percebido que um sistema de informação pode ser o seu diferencial perante suas concorrentes, pois a gerencia das informações e a garantia da segurança e disponibilidade destas de forma rápida, confiável e sigilosa em qualquer ponto a qualquer momento permite que diretores, gerentes e vendedores tomem decisões de forma mais precisa e rápida [OLIVEIRA]. Por outro lado, diversas tecnologias vêm surgindo e amadurecendo, fornecendo ao desenvolvedor uma variedade de linguagens, ferramentas e softwares que o aproximem desta realidade. Um exemplo disto é a Orientação a Objetos que vem sendo explorada no intuito de encontrar padrões para desenvolvimento de softwares de forma mais simples com uma alta manutenibilidade e reusabilidade dos códigos escritos.

Considerando o cenário descrito, este artigo pretende apresentar, de forma prática uma visão de como desenvolver uma aplicação orientada a objetos com acesso a um banco de dados objeto-relacional. Para tanto, serão empregados a linguagem de programação JAVA e o ambiente de desenvolvimento NetBeans como IDE (Interface Desktop Environment). Além disso, o Hibernate será usado como a camada de persistência que deverá fazer a interface entre a aplicação e o sistema gerenciador de banco de dados PostegreSQL. O artigo está organizado da seguinte maneira, na seção 2, é descrita a Arquitetura DAO (Data Access Object) que será utilizada para a construção das classes de mapeamento e gerencia das informações para o Hibernate. Na seção 3, é descrita a aplicação a ser considerada nos exemplos práticos. Os capítulo seguintes exploraram a prática no NetBeans na construção de aplicações. A ARQUITETURA DAO Para a construção da aplicação, vamos adaptar o padrão proposto por [FAERMAN] na revista Java Magazine de Janeiro de 2005, que descreve uma política para a construção de aplicações que utilizam um Framework para persistência dos dados. Será empregada a arquitetura DAO (Data Access Object), onde um objeto intermediário é responsável pelo acesso aos dados do sistema, independente do SGBD empregado. Na figura 1, apresenta-se a arquitetura DAO utilizada para a construção da aplicação, definindo-se o relacionamento entre as classes que irão compor a estrutura de persistência do Hibernate. Action (Aplicação) FactoryClasses Instancia Implementa hibernate.cfg.xml DAOFactory Implementa HibernateDAOFactory Instancia ClasseDAO ClasseHibernateDAO HibernateConfiguration Aplicativo Classe Interface XML Driver Banco de Dados BD Conecta Session Abre Figura 1 Modelo da arquitetura DAO a ser utilizada neste tutorial 2

O banco de dados a ser utilizado assim como o nome de usuário e a senha para acesso e demais propriedades do banco são mapeados para um arquivo XML denominado hibernate.cfg.xml, a partir de uma Factory de Classes. O HibernateDAOFactory será a classe responsável por gerar instâncias dos objetos a serem utilizados na aplicação. Estes objetos são descritos na arquitetura de forma genérica como ClasseHibernateDAO (na aplicação será visto como FuncionárioHibernateDAO) e estes implementarão as suas respectivas interfaces, também descritas de forma genérica como ClasseDAO (na aplicação como FuncionarioDAO) que contém todas as assinaturas dos métodos de gerência dos objetos como incluir (persistir), excluir, dentre outros. A partir deste ponto, é aberta uma seção com o banco através do HibernateConfiguration e os métodos chamados poderão ser executados. A APLICAÇÃO Com o objetivo de manter um aspecto técnico e prático deste trabalho, será considerada uma aplicação contendo apenas uma classe, Funcionário. A partir desta classe, serão construídas as principais funcionalidades de gerência de objetos como persistir, recuperar apenas um objeto, recuperar todos os objetos persistidos e exclusão. Desta forma, todos os atributos para esta classe são apresentados na figura 2. Funcionario private String nome; private int idade; private String cpf; Figura 2 Classe Funcionário Para a arquitetura utilizada como modelo de desenvolvimento desta aplicação, os métodos de persistência e recuperação dos objetos ficarão escritos em uma classe específica, deixando apenas na classe Funcionario os atributos e seus métodos de acesso além do construtor default, apresentando desta forma uma classe com todas as 3

características POJO (Plain Old Java Object) para manipulação do Framework de persistência Hibernate. O banco de dados utilizado será o PostgreSQL por ser um banco objetorelacional e apresentar as características de estabilidade e confiabilidade. Desta forma, os objetos gerados pela aplicação serão persistidos e recuperados no banco através do Hibernate. CONSTRUINDO E GERENCIANDO UM PROJETO NO NETBEANS Para se construir um novo projeto no NetBeans vá até o menu File e escolha New Project. Em seguida, Na janela New Project vá até a lista Categories, escolha General e na lista Projects escolha Java Application e em seguida clique em Next. Na tela seguinte New Java Application, digite o nome do projeto e defina o diretório do projeto, na caixa Project Name. Neste exemplo digite MiniCursoHibernatePratica. Após, direcione o Project Location para C:\minicursoHibernate e desmarque a caixa de opção referente ao Create Main Class como mostrado na figura 3. Por último clique em Finish. Figura 3 Definição do nome e diretório do projeto GERENCIANDO LIBRARY S NO NETBEANS 5.0 Para a utilização das bibliotecas do Hibernate e do driver JDBC que fará o acesso ao banco, será necessária a construção de Librarys no NetBeans para o armazenamento e organização destes arquivos. Para isso, deve-se criar duas Librarys, uma para o Hibernate e outra para o driver JDBC do PostgreSQL. O NetBeans permite a construção destas Librarys através da opção Library Manager no menu Tools. Ao escolher esta opção a janela Library Manager será aberta e basta clicar no botão New Library... no canto inferior esquerdo da mesma como na figura 4. 4

Figura 4 Construção de novas librarys Agora, informe o nome para a Library na caixa Library Name. Para este exemplo, digite Hibernate e clique em ok. Com a Library já construída, adicione agora as bibliotecas (.Jar) do Hibernate 3.1. Para isso, clique no botão Add Jar/Folder... Direcione para o local em que o Hibernate foi descompactado e localize o diretório hibernate-3.1. Dentro dele localize o arquivo hibernate3.jar e adicione-o clicando nele e em seguida no botão Open. Veja na figura 5 que o ClassPath foi preenchido. Figura 4 Construção de novas Librarys no NetBeans Figura 5 Preenchimento do ClassPath com o arquivo hivernate3.jar 5

Mas ainda faltam as demais Librarys existentes no diretório lib do hibernate. Para tanto, volte no botão add Jar/Folder... e direcione para o sub diretório lib existente no diretório hibernate-3.1 e adicione todas as librarys existentes (todos os arquivos jar) e em seguida clicando no botão Open, veja na figura 6: Figura 6 Seleção das demais bibliotecas do Hibernate na pasta Lib Figura 6 Seleção das demais bibliotecas do Hibernate na pasta Lib Neste momento todas as librarys do hibernate foram adicionadas a Library criada anteriormente. Por fim, clique em Ok para terminar a construção desta nova Library no NetBeans. Repita agora o mesmo procedimento para a construção de uma Library para o driver JDBC do PostgreSQL. Dê o nome para ela de JDBCPostgreSQL como na figura 7. Figura 7 Definição do nome da Library Após isso, adicione o arquivo postgresql-8.2dev-501.jdbc2.jar. Por último falta apenas adicionar as duas Librarys criadas anteriormente ao projeto. Para isso, vá ao inspetor de Projetos e clique com o botão direito sobre as Libraries e escolha Add Library como na figura 8. Figura 8 Adicionando uma Library ao projeto Escolha agora as duas Librarys criadas anteriormente e clique no botão Add Libary. Aguarde um momento enquanto o NetBeans atualiza o ClassPath e veja que 6

todas as bibliotecas do Hibernate e do Driver do PostgreSQL foram adicionadas ao seu projeto através da figura 9. Figura 9 Visualizando as bibliotecas adicionadas ao projeto CONSTRUINDO A CLASSE FUNCIONÁRIO A classe Funcionário é a uma classe de negócio da aplicação e será mapeada no Hibernate como tabelas no banco de dados. Classes deste tipo deve estar dentro de um padrão definido como POJO, que é uma classe que contém todos os atributos encapsulados e definidos os seus métodos de acesso get e set além do método construtor default. Para isso, clique com o botão direito em cima do Default Package e escolha New e logo em seguida File/Folder, como ilustrado na figura 10. Figura 10 Construindo uma nova classe 7

A janela New File será aberta, nela visualize a lista das Categories e escolha Java Classes e na lista de Files Types escolha Java Class, veja a figura 11. Figura 11 Escolhendo o tipo de arquivo Em seguida, veja a figura 12, clique em Next. Na tela seguinte digite o nome para a classe (Funcionario) e clique em Finish. Figura 12 Definindo o nome da Classe Pronto, a classe Funcionario foi criada. Agora, complete esta classe com os atributos descritos na figura 13: 8

Figura 13 Atributos da classe Funcionario Construa agora os métodos getters e setters para cada um deles. Para isso, clique primeiramente em cima de qualquer um dos atributos e vá até o menu Refactor e escolha Encapsulate Fields... Na tela Encapsulate Fields Funcionario, marque todos os métodos a serem construídos e desmarque a caixa Preview all changes, veja na figura 14: Figura 14 Seleção dos métodos a serem construídos Em seguida clique em Next e pronto, todos os métodos de get e de set foram criados. CONSTRUINDO O MAPEAMENTO DO FUNCIONÁRIO Para utilização da camada de persistência, é necessário indicar qual(is) tabela(s) do banco de dados corresponde à classe de negócio. Isso é feito por meio de um mapeamento que indica essa correspondência. Neste artigo, visando facilitar o entendimento do leitor, o mapeamento será feito por meio de um arquivo XML. Outra forma de mapeamento pode ser vista em BAUER, KING (2005). 9

Para realizar o mapeamento proposto, crie um arquivo XML, selecionando com o botão direito o Default Package e escolhendo a opção New e em seguida File/Folder, veja na figura 15: Figura 15 Construção do arquivo XML Na janela seguinte, New File apresentado na figura 16, nas Categories escolha XML e na lista Files Type escolha XML Document: Figura 16 Escolhendo um arquivo XML Em seguida, clique em Next. Na última tela, como nome para este arquivo, digite Funcionario.hbm. Por último clique em Next e na próxima tela em Finish. Veja a figura 17. 10

Figura 17 Término da construção do arquivo XML Agora, preencha este arquivo como mostrado na figura 18: Figura 18 Configuração do arquivo de mapeamento No mapeamento acima, a classe Funcionario da aplicação é relacionada à tabela funcionario do banco de dados. As tags property indicam o mapeamento dos atributos da classe com os campos da tabela, descrevendo também os valores que podem ser atribuídos aos mesmos. CONSTRUINDO O ARQUIVO HIBERNATE.CFG.XML Seguindo as instruções dispostas na seção 5 deste artigo, construa um novo arquivo XML e dê o nome para ele de: hibernate.cfg.xml Em seguida, digite o código da figura 19: 11

Figura 19 Configuração do arquivo hibernate.cfg.xml No código acima são definidos, entre outros, o driver de conexão, o usuário e a senha de acesso, bem como os arquivos que descrevem o mapeamento das classes de negócio. CONSTRUINDO A FÁBRICA DE CLASSES FACTORYCLASS Para evitar a dependência entre o aplicativo principal e a implementação concreta do DAO, iremos empregar o padrão Factory Method, no qual um objeto é responsável pela criação de outros, fabricando-os. [FAERMAN, 2005] Sendo assim, nosso próximo passo consiste em construir a classe FactoryClass para gerência do Banco de Dados a ser utilizado. Para isso, crie uma nova classe e dê o nome para ela de FactoryClasses. Em seguida, digite o código mostrado na figura 20 para esta classe: Figura 20 Configuração do arquivo.factoryclasses.java 12

Obs.: Neste ponto, algumas linhas do seu código irão ficar marcadas de vermelho. Não se preocupe, elas indicam apenas que as demais classes ainda não foram construídas, isso será feito nos próximos passos. Agora, crie a interface para a construção do FuncionarioDAO. Chame esta interface de DAOFactory e digite o código da figura 21 para ela: Figura 21 Configuração da interface DAOFactory Após ter construído a interface DAOFactory, vamos implementá-la em uma classe. Para isso, crie uma nova classe e a chame de HibernateDAOFactory. Nesta classe, vista na figura 22, implemente a interface DAOFactory e em seguida, sobrescreva o método criarfuncionariodao( ) adicionando a ele a funcionalidade de instância do FuncionarioHibernateDAO( ). Figura 22 Configuração da classe HibernateDAOFactory CONSTRUINDO OS DAO S Vamos, primeiramente, construir a interface do Funcionario. Nela nós teremos as assinaturas dos métodos de gerenciamento um novo funcionário. As implementações serão realizadas posteriormente. Para isso, crie uma nova interface e chame-a de FuncionarioDAO e adicione a ela as seguintes assinaturas de métodos descritas na figura 23: 13

Figura 23 Assinaturas dos métodos do FuncionarioDAO O método carregarum irá retornar um funcionário que possua o nome especificado no parâmetro. Já o método carregartudoordenadonome irá recuperar todos os funcionários existentes no banco de dados, ordenados pelo atributo nome. Os métodos gravar e excluir realizam as funções de inserção e exclusão para os objetos que forem definidos como seus parâmetros. Como segundo passo, iremos construir a classe FuncionarioHibernateDAO. Para isso, construa uma nova classe e dê este nome para ela. Veja o código na figura 24: Figura 24 Implementação dos métodos de gerenciamento da classe Funcionario 14

Agora, vamos escrever os códigos de cada um destes métodos, veja nas figuras abaixo: a) Método carregaum, visto na figura 25: Figura 25 Implementação do método carregaum As classes Session e Transaction controlam, respectivamente, a abertura e o fechamento de sessões de acesso ao banco de dados, e o início e a conclusão de transações. Emprega-se a classe Criteria para definir-se critérios de busca de objetos. Esses critérios podem ser definidos utilizando a classe Expression. [BAUER & KING, 2005] No código anterior, é definido um critério de busca de objetos da classe Funcionario, retornando somente aquele que possuir o atributo nome igual ao parâmetro informado ao método. b) Método carregatudoordenadopornome, visto na figura 26: Figura 26 Implementação do método carregatudoordenadopornome No método acima retorna-se uma lista de objetos da classe Funcionario, ordenados pelo atributo nome. c) Método gravar, visto na figura 27: Figura 27 Implementação do método gravar Já neste método, deve-se informar um objeto da classe Funcionario o qual será persistido no banco de dados empregando-se o método saveorupdate. d) Método excluir, visto na figura 28: 15

Figura 28 Implementação do método excluir Finalmente, no método acima, um objeto da classe Funcionario é excluído do banco de dados por meio do método delete. CONSTRUINDO O HIBERNATE DE CONFIGURAÇÃO (HIBERNATECONFIGURACAO) Como último passo deverá ser construído o arquivo que permitirá abrir uma sessão com o banco. Este arquivo é uma classe que chama-se HibernateConfiguração, com os métodos opensession e criasessionfactory. O primeiro é responsável por verificar se já existe uma sessionfactory instanciada na aplicação. Se sim, ele retorna esta sessão para a aplicação que requisitar. O segundo método faz o inverso, caso a session esteja instanciada, ele será responsável por permitir a instância de uma nova session, baseando-se no arquivo hibernate.cfg.xml, definido anteriormente. Para isso construa uma nova classe e chame-a de HibernateConfiguração e complete-a de acordo com a figura 29, veja: 16

Figura 29 Configuração do arquivo HibernateConfiguracao.java CONSTRUINDO UM ARQUIVO DE LOG Para acompanhar a execução do sistema, e facilitar a identificação de possíveis erros, será empregado o framework log4j. Para isso, deve-se criar um arquivo com as suas configurações. Para construir este arquivo, proceda da seguinte forma: Vá até o menu File e escolha New File Na janela New File, escolha nas categorias Other e na lista de Files Types Properties File. Logo em seguida, clique em Next. Em seguida, digite para o nome do arquivo: log4j e clique em Finish. Agora, copie para dentro deste arquivo o código descrito na figura 30: 17

Figura 30 Configuração do arquivo log4j.properties CONSTRUINDO A APLICAÇÃO PRINCIPAL Crie uma classe executável (Java Main Class) e chame-a de AplicacaoTexto.java Em seguida, adicione o código da figura 31 à esta classe: Figura 31 Código fonte da aplicação Agora, para persistir um novo Funcionário, digite o código da figura 32, veja: Figura 32 Código para persistir um novo funcionário 18

Para listar todos os funcionários, digite o código da figura 33: Figura 33 Código para listar todos os funcionários Para carregar apenas os dados de um funcionário digite o código da figura 34: Figura 34 Código para listar apenas um funcionário E para excluir um funcionário, digite o código da figura 35: Figura 35 Código para excluir um funcionário 19

CONCLUSÃO po presente artigo procurou demonstrar de forma prática, a implementação de uma aplicação simples em Java utilizando a camada de persistência Hibernate para o armazenamento e manipulação de objetos em um SGBD OR. Para isso, o artigo foi escrito sobre a forma de um tutorial, apresentando todos os passos necessários para a construção deste tipo de aplicação começando desde a escrita das classes POJO, passando pelo mapeamento objeto-relacional e a construção dos métodos de persistência que utilizam o Hibernate para a manipulação das informações. Além disso, seguiu-se uma arquitetura (padrão) de desenvolvimento, através de um modelo proposto por Julio Ferman, na revista Java Magazine, e adaptado para a solução deste artigo, procurando seguir uma forma de desenvolvimento que se aplique, de forma genérica, a todas as classes de qualquer sistema que venha a ser desenvolvido em Java e que faça uso do Hibernate. Com isso, o artigo mostra como organizar as classes de negócio existentes nas aplicações com o objetivo de prepará-las para a persistência em um banco de dados, a forma de construir uma aplicação seguindo uma arquitetura de desenvolvimento própria para persistência de objetos em bancos relacionais sem gerar códigos desnecessários, confusos e mal organizados e como aplicar os métodos de gerencia (persistir, recuperar, dentre outros) em uma aplicação explorando ao máximo a produtividade da mesma sem que isso gere custos exagerados de processamentos para a máquina, tornando a aplicação leve e rápida, mesmo se tratando de mapeamento de informações entre um banco relacional e uma aplicação orientada a objetos. BIBLIOGRAFIA BAUER, C. e KING, G. Hibernate em ação. Primeira Edição. 2005: Rio de Janeiro, Editora Ciência Moderna. EMILO, C. e SEVER, P. NetBeans IDE 4.1 Para desenvolvedores que utilizam a tecnologia Java. Primeira Edição. 2005: Rio de Janeiro, Editora Brasport. OLIVEIRA, Djalma P. R. de. Sistemas de Informações gerenciais: estratégias, táticas operacionais. Sétima Edição. São Paulo: Atlas, 2001. PRESSMAN, R. Engenharia de Software. Sexta Edição. McGraw-Hill, 2005. SILBERSCHATZ, Abraham, KORTH, Henry F. e SUDARSHA, S. Sistema de Banco de Dados. Terceira Edição. São Paulo: Makron Books, 1999. FAERMAN, Julio. Design Patterns Aplicados. Java Magazine, Rio de Janeiro, edição 20, p. 52-58, jan. 2005. 20