Posteado por: christmo | Abril 10, 2008

Como crear un “Pool de Conexiones” en NetBeans 6.0 usando Java Server Faces (JSF) y MySQL

En este tutoríal vamos ha mostrar como realizar un POOL de conexiones para tener centralizada nuestra conexión a una base de datos MySQL, hay que tener en cuenta que este proceso se realiza totalmente igual si queremos conectarnos a ORACLE o a cualquier otra base de datos, esto nos evitara hacer una conexión nueva cada vez que queramos hacer una consulta nueva a la base.

Antes de empezar vamos a utilizar las siguientes herramientas:

  • NetBeans 6.0
  • MySQL

Vamos a tener creada previamente en MySQL una base de datos llamada “prueba” y dentro de ella una tabla llamada “roles” con dos columnas con las filas de datos que usted prefiera ingresarle a esta tabla, este detalle pasa por cuenta de la persona que sigue este tutorial.

¿Pero qué es un Connection Pool o Pool de conexiones?

Un JDBC connection pool es un grupo de conexiones reutilizables que el servidor de la aplicación mantiene para una base de datos en particular. Cuando una aplicación cierra una conexión, regresa a la piscina. Las conexiones agrupadas reducen el tiempo de la transacción al conectarse a una base de datos por medio de compartir el objeto de acceso a la conexión a la base de datos, esto a su vez evita una nueva conexión física o crear cada vez una conexión nueva.

Al ejecutar esto es lo que pasa cuando una aplicación se conecta a la base de datos.

1. Lookup JNDI nombre de los recursos de JDBC. Para conectar a una base de datos, la aplicación busca el JNDI nombre del recurso de JDBC (Data Source) asociado con la base de datos. El API de JNDI permite a la aplicación localizar el recurso de JDBC.

2. Localizar el JDBC connection pool. El recurso de JDBC especifica qué piscina de conexiones va a usar. La piscina define los atributos de conexión como la base de datos nombre (el URL), nombre del usuario, y contraseña.

3. Recupere la conexión del connection pool. El servidor de la aplicación recupera una conexión física de la piscina de conexiones que corresponde a la base de datos. Ahora que la aplicación esta conectada a la base de datos, la aplicación puede leer, modificar y agregar los datos a la base de datos. Las aplicaciones acceden la base de datos haciendo las llamadas al API de JDBC.

4. Cerrado de la conexión. Cuando el acceso a la base de datos a terminado, la aplicación cierra la conexión. El servidor de la aplicación devuelve la conexión a la piscina de conexión. Una vez regresada a la piscina, la conexión está disponible para una próxima aplicación.

Nombre JNDI. Cada recurso tiene un único nombre de JNDI que especifica su nombre y situación. Porque todo el recurso que los nombres de JNDI están en el contexto del java:comp/env, los nombres JNDI de un recurso de JDBC se espera en el contexto del java:comp/env/jdbc.

Sigue paso a paso el tutorial para realizar un Connection Pool…

Respuestas

Muchas Gracias. Muy Util

HOla la verdad temgo un problema , tengo una conexion a mi base de datos con un pool de conexiones , uso web logic , oracle 8i y estoy programndo en netbeans usando el modelo vista controlador , pero mi problema radica enq u debo crear dos pool de conexiones disitntos apra en lazar a dos bases en la mima aplicacion, pero no se como hacer referencia al segundo pool de conexiones ????La respuesta seria igualq eu en el primero pero yo no configure esa conexion y estoy totalemte perdida tengo una linea similar a esta
sc = config.getServletContext();
sc.setAttribute(”origenJDBC”,config.getInitParameter(”origenJDBC”));

ConexionJDBC conexion = new ConexionJDBC(”weblogic.jndi.WLInitialContextFactory”);
conexion.inicializar((String)sc.getAttribute(”origenJDBC”),”t3://localhost:7001″); //weblogic
sc.setAttribute(”conexion”, conexion);

donde “OrigenJDBC” es igual al nombre del pool de conexiones en mi web.xml en la tag pero no se si yo se lo puedo agregar asi o se crea por default o bien si puedo darle ese atributo directo de la siguiente forma

conexion.inicializar(”poolde conexion2″,”t3://localhost:7001″);
suponiendo qeu el segundo pool se llame “pooldeconexion2″ cual quier ayuda o sugerencia en verdad se los agradeceria mi email es morazul_ngmt@hotmail.com

Dejar una respuesta

Su respuesta:

Categorías