Articulo de referencia

Fuente de datos

Una fuente de datos ( o DataSource ) es el nombre que se le da a la conexión establecida entre un servidor y una base de datos . Este nombre se usa comúnmente al crear una consu...

Una fuente de datos ( o DataSource ) es el nombre que se le da a la conexión establecida entre un servidor y una base de datos . Este nombre se usa comúnmente al crear una consulta a la base de datos. El nombre de la fuente de datos (DSN) no tiene por qué coincidir con el nombre del archivo de la base de datos. Por ejemplo, un archivo de base de datos llamado friends.mdb podría configurarse con el DSN school . En ese caso, se usaría el DSN school para referirse a la base de datos al realizar una consulta.

La versión de Sun de DataSource

Una fábrica para establecer conexiones con la fuente de datos física que representa este objeto DataSource. Como alternativa a la funcionalidad DriverManager, un objeto DataSource es el método preferido para obtener una conexión. Un objeto que implementa la interfaz DataSource normalmente se registra en un servicio de nombres basado en la API de la Interfaz de Nombres y Directorios de Java (JNDI).

La interfaz DataSource es implementada por un proveedor de controladores. Existen tres tipos de implementaciones:

  • Implementación básica: produce un objeto Connection estándar.
  • Implementación de agrupación de conexiones : genera un objeto Connection que participará automáticamente en la agrupación de conexiones. Esta implementación funciona con un administrador de agrupación de conexiones de nivel intermedio.
  • Implementación de transacciones distribuidas : genera un objeto Connection que puede utilizarse para transacciones distribuidas y casi siempre participa en la agrupación de conexiones. Esta implementación funciona con un gestor de transacciones de nivel intermedio y casi siempre con un gestor de agrupación de conexiones.

Un objeto DataSource posee propiedades que pueden modificarse cuando sea necesario. Por ejemplo, si el origen de datos se traslada a un servidor diferente, se puede cambiar la propiedad correspondiente al servidor. La ventaja radica en que, al poderse modificar las propiedades del origen de datos, no es necesario modificar el código que accede a dicho origen.

Un controlador al que se accede mediante un objeto DataSource no se registra en DriverManager. En su lugar, se recupera un objeto DataSource mediante una operación de búsqueda y luego se utiliza para crear un objeto Connection. Con una implementación básica, la conexión obtenida a través de un objeto DataSource es idéntica a la obtenida mediante DriverManager.

Descripción general de DataSource de Sun

Un objeto DataSource es la representación de una fuente de datos en el lenguaje de programación Java . En términos básicos, una fuente de datos es un mecanismo para almacenar información. Puede ser tan sofisticada como una base de datos compleja para una gran corporación o tan simple como un archivo con filas y columnas. Una fuente de datos puede residir en un servidor remoto o en una máquina local. Las aplicaciones acceden a una fuente de datos mediante una conexión, y un objeto DataSource puede considerarse como una fábrica de conexiones a la fuente de datos específica que representa la instancia DataSource. La interfaz DataSource proporciona dos métodos para establecer una conexión con una fuente de datos.

Utilizar un objeto DataSource es la alternativa preferida a usar DriverManager para establecer una conexión con una fuente de datos. Son similares en el sentido de que tanto la clase DriverManager como la interfaz DataSource tienen métodos para crear una conexión, métodos para obtener y establecer un límite de tiempo de espera para establecer una conexión, y métodos para obtener y establecer un flujo para el registro.

Sin embargo, sus diferencias son más significativas que sus similitudes. A diferencia de DriverManager, un objeto DataSource tiene propiedades que identifican y describen la fuente de datos que representa. Además, un objeto DataSource funciona con un servicio de nombres JNDI (Java Naming and Directory Interface) y puede crearse, implementarse y administrarse independientemente de las aplicaciones que lo utilizan. Un proveedor de controladores proporcionará una clase que es una implementación básica de la interfaz DataSource como parte de su producto de controlador JDBC ( Java Database Connectivity ) 2.0 o 3.0. El proceso que sigue un administrador de sistemas para registrar un objeto DataSource con un servicio de nombres JNDI y el proceso que sigue una aplicación para obtener una conexión a una fuente de datos mediante un objeto DataSource registrado con un servicio de nombres JNDI se describen más adelante en este capítulo.

El registro en un servicio de nombres JNDI confiere al objeto DataSource dos ventajas principales sobre DriverManager. En primer lugar, la aplicación no necesita codificar la información del controlador, como ocurre con DriverManager. El programador puede elegir un nombre lógico para la fuente de datos y registrarlo en un servicio de nombres JNDI. La aplicación utiliza dicho nombre lógico, y el servicio JNDI proporciona el objeto DataSource asociado. Este objeto DataSource se puede utilizar para establecer una conexión con la fuente de datos que representa.

La segunda gran ventaja es que la funcionalidad DataSource permite a los desarrolladores implementar una clase DataSource para aprovechar características como la agrupación de conexiones y las transacciones distribuidas. La agrupación de conexiones puede aumentar drásticamente el rendimiento al reutilizar las conexiones en lugar de crear una nueva conexión física cada vez que se solicita una. La capacidad de usar transacciones distribuidas permite que una aplicación realice las tareas de base de datos más complejas propias de las grandes empresas.

Aunque una aplicación puede usar tanto el objeto DriverManager como un objeto DataSource para obtener una conexión, usar un objeto DataSource ofrece ventajas significativas y es la forma recomendada de establecer una conexión.

Desde 1.4

Desde Java EE 6, un DataSource vinculado a JNDI puede configurarse de forma declarativa directamente desde la aplicación. [ 1 ] [ 2 ] Esta alternativa es particularmente útil para aplicaciones autosuficientes o para usar de forma transparente una base de datos integrada. [ 3 ] [ 4 ]

La versión de Yahoo de DataSource

Un DataSource es una representación abstracta de un conjunto de datos en tiempo real que presenta una API común y predecible para que otros objetos interactúen con él. La naturaleza de los datos, su cantidad, su complejidad y la lógica para devolver los resultados de las consultas influyen en la elección del tipo de DataSource. Para pequeñas cantidades de datos textuales simples, un array de JavaScript es una buena opción. Si los datos ocupan poco espacio, pero requieren un filtro computacional o transformacional sencillo antes de mostrarse, una función de JavaScript puede ser la solución adecuada. Para conjuntos de datos muy grandes —por ejemplo, una base de datos relacional robusta— o para acceder a un servicio web de terceros, sin duda necesitará aprovechar la potencia de un Script Node o un XHR DataSource.

Referencias

  1. "Introducción a la anotación DataSourceDefinition | Java.net" . Archivado del original el 3 de diciembre de 2013. Consultado el 30 de noviembre de 2013 .
  2. ^ "Definición de origen de datos (Java EE 6)" .
  3. «El estado de @DataSourceDefinition en Java EE» . 30 de junio de 2012.
  4. "Abril de 2012" .