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…

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

  1. nora gisela dijo:

    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

  2. Hola a todos,veo que saben bmucho sobre JavaNetBeans 6.1 y pues quisiera saber si me puedes recomendar un link donde se encuentre un tutorial de esta version de Java ya que estoy bastante interesado en aprender este lenguaje de programacion asi que si alguien de ustedes me puede ayudar se lo agradeceria bastante.

  3. Gomez dijo:

    Buen dia.

    Necesito ayuda por favor

    Ya llevo investigando por mucho tiempo a mi problema, no encontrado la solucion. (Soy nuevo)

    Necesito filtrar para mostrar esa informacion en una tabla

    en el diseño arrastre una Tabla, TextField, Boton
    Arrastre una tabla de la base de datos en la Tabla del diseño, En sessionBeans Tengo un RowSet con Select * from MITABLA, Modifique en criteria Ahora queda Select * from Where ID = ?, como hago el filtro.
    al presionar boton necesito que tome lo que hay en TexField y que me muestre los datos relacionados al ID que esta en TextField.

    Por Favor
    Mil Gracias.

  4. Gomez dijo:

    Buen dia.

    Necesito ayuda por favor

    Ya llevo investigando por mucho tiempo a mi problema, no encontrado la solucion. (Soy nuevo)

    Necesito filtrar para mostrar esa informacion en una tabla

    en el diseño arrastre una Tabla, TextField, Boton
    Arrastre una tabla de la base de datos en la Tabla del diseño, En sessionBeans Tengo un RowSet con Select * from MITABLA, Modifique en criteria Ahora queda Select * from Where ID = ?, como hago el filtro.
    al presionar boton necesito que tome lo que hay en TexField y que me muestre los datos relacionados al ID que esta en TextField.

    gomezcos@gmail.com
    Por Favor
    Mil Gracias.

  5. JoseLuis dijo:

    “Select * from MITABLA Where ID=”+miTextfield.getText(),

    SI QUIERES MOSTRAR EL RESULTADO EN UN JTABLE UTILIZA UN BULCE FOR PARA RECORRER EL RecordSet E IR ASIGNANDO LOS REGISTROS EN LAS COLUMNAS RESPECTIVAS.😉 SUERTE.

  6. janoterrano dijo:

    Tengo una duda..

    ¿Como configuro el pool de conexiones para acceder a varias bases de datos en una misma aplicación?

    Por ejemplo, necesito sacar datos desde Oracle y Sybase.

    Saludos.

  7. lucas dijo:

    hola a todos , veo ke saben mucho de java los chicos.
    mi pregunta para vos jorge es sobre J2ME:
    ¿ como puedo obtener los datos de dferentes pantallas ? ej: pantalla cliente cuando selecciono , tengo ke registrar en un RMS aparte el ID de este , uy luego las mercaderias o productos ke pide el mismo …
    Por favor dame una manito . gracias y segi asi oke sos un campeon

  8. lucas dijo:

    bueno, me he dado cuenta que los chicos de loja – ecuador no saben tanto de java …..

    Lo mejor que pueden hacer las pesonas es comprarse un manual de lo que necesitan ……..

    Yo ya lo hice, y me esta saliendo TODO😉

  9. Hola lucas,

    Qué bien que las cosas te vayan saliendo bien, ahora te invito a que seas parte activa de café lojano y puedas escribir sobre tus experiencias en JME (ya no se llama J2ME).

    Así que la invitación está hecha.

    Saludos desde Loja – Ecuador

  10. lucas dijo:

    perdoname JORGE pero , si ustedes desarrollaron este foro, Ustedes tienen que brindar ayuda y nosotros hacemos las preguntas🙂

    saludos desde Argentina – Buenos Aires

    • juanhuloo dijo:

      hola lucas: si bien este post y comentario es de hace mucho tiempo. Hoy me encuentro ante la disyuntiva de utilizar rms o alguna alternativa para realizar la conexion a una base de datos. Yo estoy creando una aplicacion J2ME en NetBeans, el cual necesita de contar con una base de datos. Empeze utilizando el rms, pero no me parece una buena opcion, ya que no puedo manejar los datos ( para crearlos, llamarlos , modificarlos, etc) sin que me ralentize la aplicacion al estar instalada en el celular, por que cuenta con muchos datos. Espero que me puedas ayudar en algo de lo nuevo que aprendiste. Saludoss!!!

  11. Perenquén dijo:

    Hola Jorge,

    Estoy intentando obtener una aplicación web sencilla con gwt ext y apache derby (tomcat 6) que pueda acceder a una bd Oracle.

    He realizado una conexión sin problemas, el caso es que no sé como usar la clase que conecta con la bd y que está del lado servidor como servlet.

    Saludos

  12. Diego guerra dijo:

    Hola amigo

    nesesito una ayudaa de ud, ya que nesesito crear un pool de conexion que me permita conectarme con varias usuarios diferentes de base de datos,
    y por lo q e visto el pool de conexion es solo por usuario de base de datos

    agradesco su ayuda

    slds

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s