Curso De Java: Cómo Hacer Un Pool De Conexiones?

En el anterior capítulo de nuestro Curso de JAVA, vimos cómo podíamos conectar una aplicación hecha en JAVA con una base de datos, pero de forma básica; hay que tener algo presente y es que esta forma de conectar la hemos llamado básica, ya que es utilizada para programas que no realizan conexiones concurrentes, como por ejemplo, programas que son utilizados por muy pocos usuarios; pues uno de los contra de este tipo de conexión, es que consume muchos recursos, lo cual afecta el rendimiento de nuestra aplicación y por supuesto del equipo y/o servidor.
Por esta razón, en el presente capítulo desarrollaremos y/o mostraremos una forma más avanzada, efectiva y optimizada para conectar nuestras aplicaciones con bases de datos. Esta forma es conocida como: Connection Pool o Piscina de Conexiones, ya que consiste en un agrupamiento o conjunto de conexiones abiertas, realizadas a nuestra base de datos y que pueden ser reutilizadas.

Explicación por Videotutorial:



Explicación por Foto-Tutorial: 

*Primero que todo, lógicamente debemos de contar ya con una Base de datos previamente creada (si aún no la tienes o no sabes cómo crearla, puedes ver nuestro artículo: Cómo crear una Base de datos en MySQL, con phpMyAdmin y MySQL Workbench?).

*Procederemos a:
Descargar la librería commons-dbcp-1.4.jar, la librería commons-pool-1.6.jar, y la librería mysql-connector-java-5.1.16-bin.jar. 
Las copiamos y las pegamos en la carpeta de nuestro proyecto, y las agregaremos a las librerías del mismo:

 hay que tener algo presente y es que esta forma de conectar la hemos llamado b Curso de JAVA: Cómo hacer un Pool de Conexiones?


*Nos ubicaremos en Netbeans IDE, y en nuestro proyecto localizamos la carpeta “Libraries” (Bibliotecas), la seleccionamos, damos clic derecho sobre la misma y escogemos la opción “Add JAR/Folder…”: 

 hay que tener algo presente y es que esta forma de conectar la hemos llamado b Curso de JAVA: Cómo hacer un Pool de Conexiones?


*Nos saldrá una nueva ventana, lo que tenemos que hacer es buscar a través de dicha ventana, los archivos “.jar” que descargamos con anterioridad; luego de ubicarlos los seleccionamos y damos clic en el botón “Abrir”. Ahora si expandimos nuestra carpeta Libraries, observaremos que ya contamos con estos archivos en nuestro proyecto: 

 

   hay que tener algo presente y es que esta forma de conectar la hemos llamado b Curso de JAVA: Cómo hacer un Pool de Conexiones? 

  hay que tener algo presente y es que esta forma de conectar la hemos llamado b Curso de JAVA: Cómo hacer un Pool de Conexiones?

 

 

*Ahora dentro de nuestro paquete “Metodos” (si necesitas saber cómo crear un paquete, te será de mucha ayuda leer nuestro artículo: Curso de JAVA: Cómo hacer un proyecto, un paquete y un formulario?) crearemos una Clase, la cual llamaremos “Pool”:  

 

   hay que tener algo presente y es que esta forma de conectar la hemos llamado b Curso de JAVA: Cómo hacer un Pool de Conexiones?

  hay que tener algo presente y es que esta forma de conectar la hemos llamado b Curso de JAVA: Cómo hacer un Pool de Conexiones?
 hay que tener algo presente y es que esta forma de conectar la hemos llamado b Curso de JAVA: Cómo hacer un Pool de Conexiones?



*Procederemos a pegar el siguiente código dentro de la clase que hemos creado:

    public DataSource dataSource;      public String db = "fundacion";     public String url = "jdbc:mysql://localhost/"+db;     public String user = "root";     public String pass = "123";        public Pool(){          inicializaDataSource();      }        private void inicializaDataSource(){           BasicDataSource basicDataSource = new BasicDataSource();          basicDataSource.setDriverClassName("org.gjt.mm.mysql.Driver");         basicDataSource.setUsername(user);         basicDataSource.setPassword(pass);         basicDataSource.setUrl(url);         basicDataSource.setMaxActive(50);           dataSource = basicDataSource;      }   

*Nos saldrán algunos errores en el código, lo cual se debe a que necesitamos importar ciertas librerías, para solucionar esto colocaremos fuera de la clase, más exactamente después de “package Metodos;” y antes de la línea “public class Pool {“, el siguiente código:

import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;

*Para mayor claridad y teniendo en cuenta todo lo anterior, nuestro código quedaría de la siguiente forma:

package Metodos;  import javax.sql.DataSource; import org.apache.commons.dbcp.BasicDataSource;    public class Pool {       public DataSource dataSource;      public String db = "fundacion";     public String url = "jdbc:mysql://localhost/"+db;     public String user = "root";     public String pass = "123";        public Pool(){          inicializaDataSource();      }        private void inicializaDataSource(){           BasicDataSource basicDataSource = new BasicDataSource();          basicDataSource.setDriverClassName("org.gjt.mm.mysql.Driver");         basicDataSource.setUsername(user);         basicDataSource.setPassword(pass);         basicDataSource.setUrl(url);         basicDataSource.setMaxActive(50);           dataSource = basicDataSource;      }    }   

*En resumen, lo que hacemos en el código es crear variables que contendrán valores específicos, como la dirección del servidor, el usuario y la clave para acceder a la base de datos, y el nombre de la misma; luego se crea un método con el cual obtendremos la conexión a nuestra BD; claro está, usando los datos que almacenamos en las variables y por supuesto el driver y/o la librería que descargamos.   
Si quieres una explicación más detallada sobre cada línea del código anterior, no dudes en visitar el siguiente enlace: 
Código JAVA: Conectar JAVA con una base de datos usando un Pool de conexiones





*Ahora haremos una prueba para verificar que nos podemos conectar a nuestra base de datos, para esto nos iremos a nuestro formulario principal y daremos doble clic sobre un botón que vamos a agregar para hacer la prueba:

 hay que tener algo presente y es que esta forma de conectar la hemos llamado b Curso de JAVA: Cómo hacer un Pool de Conexiones?

 hay que tener algo presente y es que esta forma de conectar la hemos llamado b Curso de JAVA: Cómo hacer un Pool de Conexiones?


*Procedemos a borrar el comentario que hay en el método del botón por defecto:

 hay que tener algo presente y es que esta forma de conectar la hemos llamado b Curso de JAVA: Cómo hacer un Pool de Conexiones?

 hay que tener algo presente y es que esta forma de conectar la hemos llamado b Curso de JAVA: Cómo hacer un Pool de Conexiones?


*Pegaremos el siguiente código dentro de dicho método: 

                                                             Pool metodospool = new Pool();         java.sql.Connection cn = null;           try {              cn=metodospool.dataSource.getConnection();              if(cn!=null){                  JOptionPane.showMessageDialog(null, "Conectado");              }          } catch (SQLException e) {              System.out.println(e);          }finally{                   try {                      cn.close();                  } catch (SQLException ex) {                      System.out.println(ex);                  }           }   

*Nos saldrán algunos errores en el código, lo cual se debe a que necesitamos importar ciertas librerías, para solucionar esto procederemos a importarlas dando clic en el bombillito que sale con error al lado de nuestro código, y luego seleccionando las librerías necesarias:

 hay que tener algo presente y es que esta forma de conectar la hemos llamado b Curso de JAVA: Cómo hacer un Pool de Conexiones?

 hay que tener algo presente y es que esta forma de conectar la hemos llamado b Curso de JAVA: Cómo hacer un Pool de Conexiones?

 hay que tener algo presente y es que esta forma de conectar la hemos llamado b Curso de JAVA: Cómo hacer un Pool de Conexiones?

 hay que tener algo presente y es que esta forma de conectar la hemos llamado b Curso de JAVA: Cómo hacer un Pool de Conexiones?


*En el código lo que hacemos es instanciar un objeto de la clase Pool(); luego obtenemos de la variable “dataSource” (que pertenece a la clase Pool), la conexión establecida entre nuestra aplicación y la base de datos; y la almacenamos en una variable tipo Connection; ahora, verificamos a través de un condicional “if”, si la conexión es exitosa, en caso tal, se nos mostrará una ventana con el mensaje “Conectado”; luego se procede a desconectar nuestra aplicación de la base de datos. Por último sólo nos resta ejecutar nuestro formulario principal y presionar el botón que realiza el test de conexión:

 hay que tener algo presente y es que esta forma de conectar la hemos llamado b Curso de JAVA: Cómo hacer un Pool de Conexiones?

 hay que tener algo presente y es que esta forma de conectar la hemos llamado b Curso de JAVA: Cómo hacer un Pool de Conexiones?

Con esto ya podremos llevar a cabo el desarrollo de aplicaciones más avanzadas, que necesitan conectarse con bases de datos de forma concurrente y así gestionar datos; es decir, guardarlos, modificarlos, etc., pero de una forma más óptima y eficaz.

Si deseas descargar el video, junto con el fascículo del presente tema del curso de JAVA, sólo debes dirigirte a nuestra Zona de Descargas, y dar clic sobre el icono "Curso de JAVA Parte 13".

Si deseas ver la Parte 12 del Curso de JAVA, puedes dar clic en el siguiente enlace: Curso de JAVA: Cómo conectar JAVA con una Base de datos? (Forma básica)
Para tener acceso a todos los temas desarrollados hasta ahora en el presente curso, puedes ver todos los capítulos de Cómo lo hago en JAVA?

Si te fue de gran ayuda este material, no olvides compartirlo con tus amigos. 
Si tienes dudas o sugerencias al respecto; puedes dejarnos tus comentarios.
Bendiciones...

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel