Pool de conexiones con Eclipse y Tomcat

Para crear una conexión tendremos que hacer las siguientes operaciones:

  1. Configurar el archivo web.xml de nuestra aplicación para que acceda al origen de datos adecuado.
  2. Configurar el archivo context.xml con los parámetros de la conexión.
  3. En el código java de nuestra aplicación:
    • Crear el objeto DataSource
    • Obtener una conexión disponible de dicho objeto.

1. Modificación del archivo web.xml: En el archivo web.xml de nuestra aplicación tenemos que añadir la etiqueta para el nombre del origen de datos:

[codesyntax lang="xml"]
<resource-ref>
	<description>Tomcat- DataSource</description>
	<res-ref-name>nombre_del_origen_de_datos</res-ref-name>
	<res-type>javax.sql.DataSource</res-type>
	<res-auth>Container</res-auth>
</resource-ref>

[/codesyntax]
El nombre del origen de datos lo elegimos nosotros (jdbc/bd_libros). En el resto de modificaciones nos referiremos a este origen de datos con este nombre.

2. Modificación del archivo context.xml: En la carpeta /META-INF de nuestra aplicación creamos el archivo context.xml con los parámetros de la conexión:

Todos los parámetros que indiquemos son los correspondientes a la base de datos que vamos a utilizar.

[codesyntax lang=»xml»]

<Resource name="nombre_del_origen_de_datos" auth="Container"
            type="javax.sql.DataSource" username="usuario_de_la_bdd" password="pwd_de_la_bdd"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://servidor_bdd/nombre_bdd"
            maxActive="100"  maxIdle="30" maxWait="10000"
            />

[/codesyntax]

3. Código para crear la conexión: El código Java que realiza la conexión es el siguiente:

 [codesyntax lang="java5"]
DataSource servicioConexiones;
try     {
   // Recuperar el contexto inicial
   Context ctx = new InitialContext();
   // Referencia al servicio de conexiones
   servicioConexiones = (DataSource)ctx.lookup("java:comp/env/jdbc/nombre_del_origen_de_datos");
} catch (Exception e){
   throw new ServletException( "Imposible recuperar java:comp/env/jdbc/nombre_del_origen_de_datos", e);
}

[/codesyntax]
Para crear un objeto de la clase Connection, teclearemos:

   [codesyntax lang="java5"]
Connection conexion = servicioConexiones.getConnection();

[/codesyntax]

Comments