Conexión con una fuente de datos mediante la interfaz DataSource
Si es necesario que sus aplicaciones se puedan migrar de una fuente de datos a otra, debe utilizar la interfaz DataSource.
Acerca de esta tarea
El uso de DriverManager para conectar con una fuente de datos reduce la portabilidad, pues la aplicación debe identificar un nombre de clase y URL determinados para el controlador JDBC. El nombre de clase y el URL del controlador son específicos de un proveedor de JDBC, de la implementación del controlador y de la fuente de datos.
Cuando se conecta a una fuente de datos utilizando la interfaz DataSource, utiliza un objeto DataSource.
La forma más sencilla de utilizar un objeto DataSource es crear y utilizar el objeto en la misma aplicación, tal como hace en la interfaz DriverManager. Sin embargo, este método no proporciona portabilidad.
La mejor manera de utilizar un objeto de configuración ( DataSource ) es que el administrador del sistema lo cree y lo gestione por separado, utilizando WebSphere® Application Server u otra herramienta. El programa que crea y gestiona un objeto DataSource también utiliza Java Naming and Directory Interface (JNDI) para asignar un nombre lógico al objeto DataSource . La aplicación JDBC que hace uso del objeto DataSource puede luego referirse al objeto utilizando su nombre lógico, y no necesita ninguna información sobre la fuente de datos subyacente. Además, el administrador del sistema puede modificar los atributos de la fuente de datos y el usuario no necesita cambiar su programa de aplicación.
http://www.ibm.com/software/webservers/appserv/Para conocer cómo desplegar objetos DataSource por sí mismo, consulte "Creación y despliegue de objetos DataSource".
Puede utilizar la interfaz DataSource y la interfaz DriverManager en la misma aplicación, pero para lograr una portabilidad máxima es recomendable que utilice solo la interfaz DataSource para obtener conexiones.
Procedimiento
Para obtener una conexión utilizando un objeto DataSource que creó el administrador del sistema y al que éste asignó un nombre lógico, siga estos pasos:
ejemplos
Ejemplo de obtención de una conexión utilizando
un objeto DataSource que fue creado por el
administrador del sistema: en este ejemplo, el nombre lógico
de la fuente de datos con la que desea conectar es
jdbc/sampledb. Los números que aparecen a la derecha de algunas sentencias
corresponden a los pasos descritos anteriormente.
import java.sql.*;
import javax.naming.*;
import javax.sql.*;
…
Context ctx=new InitialContext(); 2
DataSource ds=(DataSource)ctx.lookup("jdbc/sampledb"); 3
Connection con=ds.getConnection(); 4
import java.sql.*; // JDBC base
import javax.sql.*; // Additional methods for JDBC
import com.ibm.db2.jcc.*; // IBM Data Server Driver for JDBC and SQLJ 1
// interfaces
DB2SimpleDataSource dbds=new DB2SimpleDataSource(); 2
dbds.setDatabaseName("dbloc1"); 3
// Assign the location name
dbds.setDescription("Our Sample Database");
// Description for documentation
dbds.setUser("john");
// Assign the user ID
dbds.setPassword("dbadm");
// Assign the password
Connection con=dbds.getConnection(); 4
// Create a Connection object
| Nota | Descripción |
|---|---|
| 1 | Importa el paquete donde reside la implementación de la interfaz DataSource. |
| 2 | Crea un objeto DB2SimpleDataSource. DB2SimpleDataSource es una de las IBM® Data Server Driver for JDBC and SQLJ implementaciones de la interfaz DataSource . Consulte «Creación e implementación de objetos de DataSource » para obtener información sobre las implementaciones de DataSource de Db2. |
| 3 | Los métodos setDatabaseName, setDescription, setUser y setPassword asignan atributos al objeto DB2SimpleDataSource. Consulte "Propiedades para el objeto IBM Data Server Driver for JDBC and SQLJ " para obtener información sobre los atributos que puede establecer para un objeto DB2SimpleDataSource en IBM Data Server Driver for JDBC and SQLJ. |
| 4 | Establece una conexión con la fuente de datos representada por el objeto DB2SimpleDataSource. |