Jdbc

Disponível somente no TrabalhosFeitos
  • Páginas : 14 (3492 palavras )
  • Download(s) : 0
  • Publicado : 14 de junho de 2012
Ler documento completo
Amostra do texto
Interface entre Java e Bancos de dados relacionais
Java permite o acesso a bancos de dados relacionais através das funcionalidades definidas no pacote java.sql e associados, que definem o "produto JDBC".
JDBC é uma API para execução e manipulação de resultados a consultas SQL através de Java. Para desenvolver uma aplicação com Java e bancos de dados relacionais, é preciso ter disponível:
*O pacote JDBC (padrão na distribuição da plataforma de desenvolvimento Java desde sua versão 1.1);
* Acesso a um servidor de banco de dados relacional, ou seja, um sistema gerenciador de banco de dados que entende SQL; e
* Um driver JDBC adequado ao SGBD que será utilizado.
Uma vez que esses recursos estejam disponíveis, a aplicação Java tem acesso ao banco de dados relacional através daexecução dos seguintes passos:
1. Habilitar o driver JDBC a partir da aplicação cliente;
2. Estabelecer uma conexão entre a aplicação cliente e servidor do banco de dados;
3. Montar e executar a consulta SQL desejada; e
4. Processar no cliente o resultado da consulta.
A seguinte figura ilustra a arquitetura JDBC, delimitando o escopo da aplicação e da infra-estrutura de acesso aosbancos de dados:

Carregando um driver JDBC
Do ponto de vista da aplicação Java, um driver nada mais é do que uma classe cuja funcionalidade precisa ser disponibilizada para a aplicação. A funcionalidade básica que um driver deve oferecer é especificada através da interface Driver.
A classe DriverManager estabelece um conjunto básico de serviços para a manipulação de drivers JDBC. Como partede sua inicialização, essa classe tentará obter o valor da propriedade jdbc.drivers de um arquivo de definição de propriedades e carregar os drivers especificados pelos nomes das classes.
Alternativamente, um driver pode ser carregado explicitamente para a JVM; a forma usual para executar essa tarefa é através do método forName() da classe Class, como emClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");
DAO
O padrão Data Access Object (DAO) é um padrão introduzido no ambiente JEE para simplificar e desacoplar a interação das aplicações Java com a API JDBC.
O problema
A maioria (para não dizer todas) das aplicações de nível corporativo usam algum tipo de persistência de dados. Entre eles o mais usado é o Banco de Dados e a linguagem SQL é amplamente utilizada para comunicar com ossistemas gerenciadores de banco de dados. Java suporta esta necessidade desde cedo com o advento da API JDBC (Java Database Connectivity). Antes do uso de Java em sistemas corporativos as aplicações eram majoritariamente escritas em linguagens orientadas a processo e a ordem e instruções SQL específicas continham regras de negócio. Ao passar esses sistemas para Java, essas regras não se poderiamperder e, ao mesmo tempo, há que se trabalhar com objetos. O padrão DAO visava originalmente encapsular esses conjuntos de códigos SQL que existiam em aplicações legadas. Esse código continha regras tanto na pesquisa dos dados, tanto na edição dos dados. É comum ao inserir um determinado dado, ter que inserir ou atualizar outros. Para projetos novos, que não dependem de código legado, JDBC é a escolhapara comunicar com bancos dados. Contudo o uso de JDBC obriga as aplicações Java, a escrever SQL para comunicar com o gerenciador de bando de dados. Essa comunicação é feita utilizando o padrão Bridge em que a interface é Java e igual para todos os sistema de gerenciamento de bancos de dados e a implementação é específica de cada um encapsulada no conceito de driver. O problema é que nem todos osdrivers JDBC suportam todos os tipos de instrução SQL, ou nem sempre com o mesmo dialeto. Alguns suportam operações que outros não. Java é orientado a objetos e mapear as propriedades dos objetos para tabelas utilizando SQL é processo chato, demorado, passível de erro e que ninguém quer repetir em diferentes pontos da aplicação. Finalmente, nem todas as aplicações comunicam apenas com banco de...
tracking img