poolconnection + mysql + netbeans 6.0

30
Christian Mora christmo99.wordpress.com

Upload: christian-mora

Post on 03-Jul-2015

12.304 views

Category:

Technology


2 download

DESCRIPTION

Esta es la misma presentación que la de PoolConnection anterior solo que esta con otro formato...

TRANSCRIPT

Page 1: PoolConnection + MySql + NetBeans 6.0

Christian Morachristmo99.wordpress.com

Page 2: PoolConnection + MySql + NetBeans 6.0

A ntes de empezar vamos a utilizar las siguientes herramientas:

NetB eans 6.0 MyS QL V amos a tener creada previamente en MyS QL 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? 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.

Page 3: PoolConnection + MySql + NetBeans 6.0

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

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 JDB C (Data S ource) asociado con la base de datos. El A PI de JNDI permite a la aplicación localizar el recurso de JDB C.

Localizar el JDBC connection pool. El recurso de JDB C 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.

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. A hora 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 A PI de JDB C.

Page 4: PoolConnection + MySql + NetBeans 6.0

Cerrado de la conexión. Cuando el acceso a la base de datos a terminado, la aplicación cierra la conexión. E l 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 JDB C se espera en el contexto del java:comp/env/jdbc.

Page 5: PoolConnection + MySql + NetBeans 6.0

Como primer paso vamos a crear un nuevo proyecto de JS F, vamos a file -> New Poyect -> Web -> Web A pplication y clic en Next

Page 6: PoolConnection + MySql + NetBeans 6.0
Page 7: PoolConnection + MySql + NetBeans 6.0

L e ponemos un nombre en este caso le vamos a poner “ PoolConnection” y luego clic en Next

Page 8: PoolConnection + MySql + NetBeans 6.0

Elegimos el Framework que vamos a utilizar “ V isual Web JavaS erver Faces” y no cambiamos nada más, clic en F inish.

Page 9: PoolConnection + MySql + NetBeans 6.0

Una vez dentro de la parte de diseño de NetB eans vamos a arrastrar de la paleta un botón “ B utton” el cual va a ser el que nos conecte con la base M yS QL y le vamos a poner de nombre conectar… Con esto realizado vamos a pasar a preparar la conexión a la base con la que vamos a trabajar.

  Creación del Conector para la Base de Datos Primero tenemos que ir a la parte de servicios (Ctrl + 5) en NetB eans y en

Databases damos un clic derecho y ponemos en la opción de New Connection…

Page 10: PoolConnection + MySql + NetBeans 6.0

En la ventana de New Database Connection vamos a poner lo siguiente:Name: MySQL (Connector/J driver)Driver: com.mysql.jdbc.DriverDatabase URL: jdbc:mysql://localhost:3306/prueba En esta parte ponemos el host donde va a correr la aplicación que va a ser en “localhost”, al poner el puerto debemos tener cuidado porque el puerto 3306 es el puerto por defecto de MySQL, pero debemos ponerle el puerto que le pusimos en la instalación de MySQL si por si acaso lo cambiamos, y ponemos el nombre de la base a la que queremos tener acceso que en este caso va a ser “prueba”…Por ultimo ponemos el User y el Password con el cual entramos a MySQL… Si queremos que recuerde NetBeans el Password le ponemos Remember Password caso contrario no (No es recomendable hacerlo por problemas de seguridad) y terminamos presionando OK.

Page 11: PoolConnection + MySql + NetBeans 6.0
Page 12: PoolConnection + MySql + NetBeans 6.0

Nos aparecerá una nueva base en el recuadro de S ervicios, podremos conectarnos a ella y revisar los datos.

Page 13: PoolConnection + MySql + NetBeans 6.0

Lo que vamos a hacer primero es ir a File --> New File o directamente (Ctrl + n), en la ventana de New File, en Project escogemos el proyecto con el que estamos trabajando en nuestro caso “ PoolConnection” , en el lado izquierdo en Categories vamos a escoger “ GlassFish” y al lado derecho en File Types vamos a escoger la primera opción que es “ JDB C Connection Pool” y clic en Next.

Page 14: PoolConnection + MySql + NetBeans 6.0
Page 15: PoolConnection + MySql + NetBeans 6.0

En la siguiente ventana nos pide como campo obligatorio o requerido un nombre para el pool de conexiones, le podemos dejar el que nos pone por defecto o simplemente lo cambiamos, nosotros lo vamos a dejar por defecto.

En el siguiente casillero de Extract from Existing Connection escogemos el conector que realizamos anteriormente para nuestra base de datos, y damos clic en Next.

Page 16: PoolConnection + MySql + NetBeans 6.0
Page 17: PoolConnection + MySql + NetBeans 6.0

En la siguiente ventana nos aparece Datasource Classname con un nombre bastante largo, este esta determinado por la conexión seleccionada anteriormente, nosotros lo vamos a dejar por defecto, le vamos a poner una descripción, en la tabla de propiedades podemos revisar los datos de ingreso a la base, para comprobar que estén correctos y terminamos dándole un clic en Next. (S i deseamos modificar las propiedades por defecto de la conexión, nosotros podemos cambiarlas luego editando el archivo sun-resources.xml, que se encuentra en la carpeta S erver Resources de nuestro proyecto).

Page 18: PoolConnection + MySql + NetBeans 6.0
Page 19: PoolConnection + MySql + NetBeans 6.0

En la última V entana que nos aparece con muchos campos todos los dejamos por defecto y ponemos un clic en F inish, con esto ya tenemos realizado nuestro pool de conexiones…

Page 20: PoolConnection + MySql + NetBeans 6.0

A través de este proceso podremos obtener un DataS ource. L o primero que tenemos que hacer es crear el acceso a la

base, vamos al código de la aplicación desde la cual queremos acceder a la base de datos, hacemos un clic derecho en el editor escogemos Enterprise Resources Use Database

Page 21: PoolConnection + MySql + NetBeans 6.0
Page 22: PoolConnection + MySql + NetBeans 6.0

Nos aparece la ventana para escoger la base de datos, hacemos un clic en A dd, nos aparecerá una nueva ventana para configurar el Data S ource, le ponemos un Nombre de Referencia en este caso le vamos a poner “ conB asePrueba” , luego escogemos el Project Data S ource como no tenemos creado un data source anterior, le ponemos clic en A dd y se nos vuelve a abrir una nueva ventana, Create Data S ource en el JNDI Name le ponemos el mismo nombre anterior “ conB asePrueba” y elegimos el conector de la base a la que vamos a acceder, finalmente damos un clic en OK…

Page 23: PoolConnection + MySql + NetBeans 6.0

Creación de un Data Source

Page 24: PoolConnection + MySql + NetBeans 6.0

Regresamos a la ventana anterior y ya se nos carga el nombre de DataS ource que ingresamos y creamos anteriormente y damos un clic en OK para confirmar…

Page 25: PoolConnection + MySql + NetBeans 6.0

Finalmente regresamos a la ventana de Choose DataB ase ya se nos cargara la referencia a la base de datos y confirmamos haciendo un clic en OK…

Page 26: PoolConnection + MySql + NetBeans 6.0

Con este último paso estamos listos para realizar una prueba de conexión desde el código…

Page 27: PoolConnection + MySql + NetBeans 6.0

V amos hacer una prueba rápida de conexión y vamos a visualizar por consola nuestro resultado, regresaremos a nuestra interfaz de Diseño de NetB eans y vamos a hacer doble clic en el botón que colocamos al inicio de este tutorial, nuestro proyecto se ve más o menos así ahora.

Page 28: PoolConnection + MySql + NetBeans 6.0
Page 29: PoolConnection + MySql + NetBeans 6.0

public S tring button1_action() { Connection con = null; try { InitialContext ic = new InitialContext(); //en esta parte es donde ponemos el Nombre de JNDI para que traiga el datasource DataS ource ds = (DataS ource) ic.lookup("java:comp/env/conB asePrueba"); con = ds.getConnection(); S tatement st = con.createS tatement(); S ystem.out.println("S e ha realizado con exito la conexión a MyS QL"); //el resultS et es el encargado de traer los datos de la consulta ResultS et rs = st.executeQuery("select * from roles"); while(rs.next()){ S ystem.out.println(" "+rs.getS tring(1)+" "+rs.getS tring(2)); } } catch (S QLException ex) { Logger.getLogger(Page1.class.getName()).log(Level.S EV ERE, null, ex); } catch (NamingException ex) { Logger.getLogger(Page1.class.getName()).log(Level.S EV ERE, null, ex); }finally { try { con.close(); S ystem.out.println("Conexion Cerrada con Exito..."); } catch (S QLException ex) { Logger.getLogger(Page1.class.getName()).log(Level.S EV ERE, null, ex); } } return null; }

Page 30: PoolConnection + MySql + NetBeans 6.0

Tenemos en nuestra base una tabla llamada “ roles” la cual tiene 2 columnas, en el resultS et se almacena los datos obtenidos de la consulta y mientras haya datos en él se lo puede ir descomponiendo en columnas, con un while lo podemos ir recorriendo hasta llegar a la última fila…

S e debe hacer estas importaciones para que la aplicación pueda funcionar sin ningún problema aparte de las que ya aparecen al crear el nuevo proyecto.

import java.sql.Connection; import java.sql.ResultS et; import java.sql.S QLException; import java.sql.S tatement; import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.Resource; import javax.faces.FacesException; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataS ource;