Seção Temática II: Ciência e Tecnologia DAO E HIBERNATE1 Wallace Caldeira Jeverson Siqueira 2 Faculdade Anglo-Americano, Foz do Iguaçu, Paraná, Brasil O Data Access Object (DAO) é um padrão introduzido no ambiente Java Enterprise Edition (JEE) para simplificar a comunicação das aplicações Java com a Java Database Connectivity (JDBC). Desenvolvido para solucionar três problemas principais, legado, isolamento e mapeamento de objetos. O DAO encapsula lógicas de persistência legadas escritas com SQL, permite alterar a API JDBC sem a necessidade de alterar a aplicação. O DAO é responsável por operar o mecanismo de persistência em nome da aplicação tipicamente executando os quatro tipos de operações, criar, recuperar, alterar e apagar conhecidas pela sigla CRUD (Create, Retrive, Update, Delete). Em particular a regra só pode ser executada em um tipo especifico de API de persistência. É aconcelhado que o DAO seja especificado através de interface ao invés de uma classe concreta, desta forma facilita o trabalho de implementar novos mecanismos de persistencia, porém, é impedido que se criem referencias a classes que não são interface diminuindo o acoplamento a um mecanismo em particular. Podendo trabalhar em conjunto com o DAO, o Hibernate é uma framework para a manipulação de banco de dados, com ele existem o mapeamento de classes (cada classe representa uma tabela do banco) ele contém comandos (SQLs) prontos para trabalhar com o BD. Usando o Hibernate, não é preciso que o desenvolvedor escreva muito do código SQL, necessário quando o mesmo não é aplicado, acelerando a velocidade de desenvolvimento de uma forma notável. Nas questões relacionadas para o gerenciamento de transações e na tecnologia de acesso à base de dados são de responsabilidade de outros elementos na infraestrutura do programa. No caso de aplicações construídas para serem executadas em servidores de aplicação, o gerenciamento das transações é realizado segundo o padrão Java Transaction API (JTA) disponibiliza uma interface para a demarcação de transações em aplicações 1 Trabalho de Pesquisa desenvolvido sob a orientação do Prof. Ms. Miguel Diogenes Matrakas. Acadêmicos de Ciência da Computação da Faculdade Anglo-Americano. E-mail de contato: [email protected]; [email protected] Seminário Científico Organizações, Tecnologia e Relações Internacionais, 2013. 2 Centro Universitário UDC, Faculdade Anglo-Americano, Foz do Iguaçu, Paraná, Brasil. escritas na linguagem Java. Já nas aplicações stand alone, o programa delega o tratamento transacional ao driver JDBC. Portanto o Hibernate não é uma boa opção para todos os tipos de aplicação. Sistemas que fazem uso extensivo de stored procedures, triggers ou que implementam a maior parte da lógica da aplicação no banco de dados, contando com um modelo de objetos não muito completo não vai se beneficiar com o uso do Hibernate. Ele é mais indicado para sistemas que contam com um modelo mais robusto, onde a maior parte da lógica de negócios fica na própria aplicação Java, dependendo pouco de funções específicas do banco de dados. Objeto de acesso a dados é um padrão para persistência de dados que permite separar regras de negócio das regras de acesso a banco de dados. Numa aplicação que utilize a arquitetura MVC, todas as funcionalidades de bancos de dados, tais como obter as conexões, mapear objetos Java para tipos de dados SQL ou executar comandos SQL, devem ser feitas por classes de DAO. Já o Hibernate facilita o mapeamento dos atributos entre uma base tradicional de dados relacionais e o modelo objeto de uma aplicação, mediante o uso de arquivos (XML) ou anotações Java. PALAVRAS-CHAVE: Padrão de Projeto, DAO, Hibernate, Acesso ao Banco de Dados. Seminário Científico Organizações, Tecnologia e Relações Internacionais, 2013. Centro Universitário UDC, Faculdade Anglo-Americano, Foz do Iguaçu, Paraná, Brasil.