Fonte de dados - Datasource

DataSource é um nome dado à conexão configurada para um banco de dados a partir de um servidor . O nome é comumente usado ao criar uma consulta ao banco de dados. O nome da fonte de dados (DSN) não precisa ser igual ao nome do arquivo do banco de dados. Por exemplo, um arquivo de banco de dados chamado friends.mdb pode ser configurado com um DSN da escola . Então, a escola DSN seria usada para se referir ao banco de dados ao realizar uma consulta.

Versão da Sun do DataSource [1]

Uma fábrica para conexões com a fonte de dados física que este objeto DataSource representa. Uma alternativa ao recurso DriverManager, um objeto DataSource é o meio preferido de obter uma conexão. Um objeto que implementa a interface DataSource normalmente será registrado com um serviço de nomenclatura baseado na API Java Naming and Directory Interface (JNDI).

A interface DataSource é implementada por um fornecedor de driver. Existem três tipos de implementações:

  • Implementação básica - produz um objeto Connection padrão
  • Implementação do pool de conexão - produz um objeto Connection que participará automaticamente do pool de conexão. Essa implementação funciona com um gerenciador de pool de conexões de camada intermediária.
  • Implementação de transação distribuída - produz um objeto Connection que pode ser usado para transações distribuídas e quase sempre participa do pool de conexão. Essa implementação funciona com um gerenciador de transações de camada intermediária e quase sempre com um gerenciador de pool de conexão.

Um objeto DataSource possui propriedades que podem ser modificadas quando necessário. Por exemplo, se a fonte de dados for movida para um servidor diferente, a propriedade do servidor pode ser alterada. O benefício é que, como as propriedades da fonte de dados podem ser alteradas, qualquer código que acesse essa fonte de dados não precisa ser alterado.

Um driver que é acessado por meio de um objeto DataSource não se registra no DriverManager. Em vez disso, um objeto DataSource é recuperado por meio de uma operação de pesquisa e, em seguida, usado para criar um objeto Connection. Com uma implementação básica, a conexão obtida por meio de um objeto DataSource é idêntica a uma conexão obtida por meio do recurso DriverManager.

Visão geral da fonte de dados da Sun [2]

Um objeto DataSource é a representação de uma fonte de dados na linguagem de programação Java . Em termos básicos, uma fonte de dados é um recurso para armazenar dados. Pode ser tão sofisticado quanto um banco de dados complexo para uma grande empresa ou tão simples quanto um arquivo com linhas e colunas. Uma fonte de dados pode residir em um servidor remoto ou em uma máquina desktop local. Os aplicativos acessam uma fonte de dados usando uma conexão, e um objeto DataSource pode ser considerado uma fábrica para conexões com a fonte de dados específica que a instância DataSource representa. A interface DataSource fornece dois métodos para estabelecer uma conexão com uma fonte de dados.

Usar um objeto DataSource é a alternativa preferida ao uso do DriverManager para estabelecer uma conexão com uma fonte de dados. Eles são semelhantes na medida em que a classe DriverManager e a interface DataSource possuem métodos para criar uma conexão, métodos para obter e definir um limite de tempo limite para fazer uma conexão e métodos para obter e definir um fluxo para registro.

Suas diferenças são mais significativas do que suas semelhanças, no entanto. Ao contrário do DriverManager, um objeto DataSource possui propriedades que identificam e descrevem a fonte de dados que representa. Além disso, um objeto DataSource funciona com um serviço de nomenclatura Java Naming and Directory Interface (JNDI) e pode ser criado, implementado e gerenciado separadamente dos aplicativos que o utilizam. Um fornecedor de driver fornecerá uma classe que é uma implementação básica da interface DataSource como parte de seu produto de driver Java Database Connectivity (JDBC) 2.0 ou 3.0. O que um administrador do sistema faz para registrar um objeto DataSource com um serviço de nomenclatura JNDI e o que um aplicativo faz para obter uma conexão com uma fonte de dados usando um objeto DataSource registrado com um serviço de nomenclatura JNDI são descritos posteriormente neste capítulo.

O registro em um serviço de nomenclatura JNDI dá ao objeto DataSource duas vantagens principais sobre o DriverManager. Primeiro, um aplicativo não precisa codificar as informações do driver, como acontece com o DriverManager. Um programador pode escolher um nome lógico para a fonte de dados e registrar o nome lógico com um serviço de nomenclatura JNDI. O aplicativo usa o nome lógico e o serviço de nomenclatura JNDI fornecerá o objeto DataSource associado ao nome lógico. O objeto DataSource pode então ser usado para criar uma conexão com a fonte de dados que representa.

A segunda grande vantagem é que o recurso DataSource permite que os desenvolvedores implementem uma classe DataSource para aproveitar recursos como pool de conexão e transações distribuídas. O pool de conexão pode aumentar drasticamente o desempenho, reutilizando conexões em vez de criar uma nova conexão física cada vez que uma conexão é solicitada. A capacidade de usar transações distribuídas permite que um aplicativo faça o trabalho pesado de banco de dados de grandes empresas.

Embora um aplicativo possa usar o objeto DriverManager ou um objeto DataSource para obter uma conexão, o uso de um objeto DataSource oferece vantagens significativas e é a maneira recomendada de estabelecer uma conexão.

Desde 1.4

Desde Java EE 6, um DataSource vinculado a JNDI pode, alternativamente, ser configurado de forma declarativa diretamente de dentro do aplicativo. Esta alternativa é particularmente útil para aplicativos autossuficientes ou para o uso transparente de um banco de dados embutido.

Versão do DataSource do Yahoo [3]

Um DataSource é uma representação abstrata de um conjunto ativo de dados que apresenta uma API comum previsível para outros objetos interagirem. A natureza de seus dados, sua quantidade, sua complexidade e a lógica para retornar os resultados da consulta, todos desempenham um papel na determinação do seu tipo de DataSource. Para pequenas quantidades de dados textuais simples, um array JavaScript é uma boa escolha. Se seus dados ocupam pouco espaço, mas exigem um filtro computacional ou transformacional simples antes de serem exibidos, uma função JavaScript pode ser a abordagem certa. Para conjuntos de dados muito grandes - por exemplo, um banco de dados relacional robusto - ou para acessar um serviço da web de terceiros, você certamente precisará aproveitar o poder de um nó de script ou fonte de dados XHR.

Referências