You are on page 1of 15

Universidad Catlica Los ngeles de Chimbote Programacin Visual II

CONEXIN A LA BASE DE DATOS CON JDBC

Acceso a la base de datos desde NetBeans NetBeans nos permite hacer operaciones sobre la base de datos como crear y borrar, tablas, agregar y eliminar columnas, agregar, modificar y eliminar registros de datos como realizar consultas. Vamos a proceder hacer algunas operaciones: 1. Expanda el nodo con la conexin a la base de datos.

Ing. Martn Salcedo Quiones

Pgina 1

Universidad Catlica Los ngeles de Chimbote Programacin Visual II

2. Observamos en la figura anterior las carpetas referidas a Tablas, Vistas y Procedimientos. Si expandimos el nodo referido a Tablas, veremos las tablas docente, escuela, facultad, profesin y sede.

Ing. Martn Salcedo Quiones

Pgina 2

Universidad Catlica Los ngeles de Chimbote Programacin Visual II


3. Si seleccionamos el nodo referido a Tablas y damos clic botn derecho, se muestra un men flotante y luego elegimos la opcin Crear Tabla.

4. Vamos a proceder a crear la tabla de Area con los campos idarea char(2), descripcion varchar(28). Una vez indicado los campos damos clic en el botn de comando Aceptar.

5. Volvemos al entorno de NetBeans y observamos en la pestaa de Prestaciones la nueva tabla de Area.


Ing. Martn Salcedo Quiones Pgina 3

Universidad Catlica Los ngeles de Chimbote Programacin Visual II

6. Si deseamos insertar un registro a una de las tablas a travs del comando insert, seleccionamos el nodo referido a Tablas. Dando clic botn derecho se muestra un men flotante y luego seleccionamos la opcin Executar Comando...

Ing. Martn Salcedo Quiones

Pgina 4

Universidad Catlica Los ngeles de Chimbote Programacin Visual II


7. Escribimos el comando para insertar un nuevo registro en la tabla de Facultad, luego procedemos a ejecutarlo.
Dar clic aqu para ejecutar el comando

8. Luego si escribimos el comando select para consultar los datos de la tabla Facultad, observaremos el contenido de dicha tabla

9. Como vern el entorno de NetBeans nos ofrece la oportunidad de acceder y manipular los datos y las estructuras de los elementos que conforman una base de datos. Ahora ustedes mismos, en base a la experiencia de los conocimientos adquiridos en los cursos referentes a base de datos, procedan a experimentar el entorno grfico que nos ofrece NetBeans.
Ing. Martn Salcedo Quiones Pgina 5

Universidad Catlica Los ngeles de Chimbote Programacin Visual II


Paquete Java.SQL para trabajar con base de datos Para realizar una aplicacin para que realice cualquier operacin de lo ms sencilla posible se necesita de la utilizacin de varias clases e interfases. JDBC ofrece el paquete java.sql en la que existen clases e interfaces muy tiles para trabajar con base de datos. Veamos las ms importantes clases o interfases y en la medida en que se desarrolle las sesiones se detallarn ms mencionando los mtodos que tienen para hacer fcil el acceso a la base de datos.

La clase DriverManager , permite llevar a cabo una conexin con la base de datos logrando cargar un driver. Existen varios mtodos para ello, entre las cuales se destacan: public static synchronized Connection getConnection(String url) throws SQLException public static synchronized Connection getConnection(Strin url,String user, String password) throws El primero de los mtodos recibe como parmetro la direccin URL que identifica la base de datos. En el caso en que sea necesario proporcionar un usuario y una contrasea para acceder a la base de datos (como sucede en MySql) se utiliza el segundo de los mtodos. Una direccin URL JDBC proporciona un mtodo de localizacin de bases muy parecido al que representan las direcciones URL que identifican sitios Web de Internet. Los controladores JDBC tienen que ser capaces de conectar con la base de datos a partir de la informacin contenida en la direccin URL JDBC de la misma, por lo que son los desarrolladores los que fijan en la mayora de los casos la sintaxis.

La interfaz Connection, cuando se utiliza uno de los mtodos anteriormente mencionados se obtiene un objeto de tipo Connection que

Ing. Martn Salcedo Quiones

Pgina 6

Universidad Catlica Los ngeles de Chimbote Programacin Visual II


representa como es de esperar la conexin con la base de datos. El objeto obtenido cuenta con varios mtodos. Dos de los ms importantes son: public abstract Statement createStatement() throws SQLException public abstract void close() throws SQLException El primero de los mtodos sirve para crear un objeto del tipo Statement. Las frases SQL se ejecutan normalmente mediante la utilizacin de objetos del tipo Statement. Finalmente, es conveniente cerrar las conexiones tan pronto como dejen de utilizarse para liberar recursos. No obstante, ha de tenerse en cuenta que establecer una conexin es una operacin costosa, por lo que tampoco se debe estar abriendo y cerrando la conexin con frecuencia.

La interfaz Statement, los objetos de tipo Statement permiten realizar consultas y efectuar operaciones de actualizacin, borrado o insercin de datos. En algunos casos es interesante tambin fijar ciertos parmetros vinculados con la consulta que se desea realizar, como por ejemplo el tiempo que estamos dispuestos a esperar a que el gestor de la base de datos devuelva el resultado de la consulta. Los mtodos que se citan a continuacin son algunos de los ms importantes para llevar a cabo todas estas acciones. public abstract ResultSet executeQuery(String sql) throws SQLException Ejecuta una senetencia SELECT y devuelve el resultado mediante la interfaz ResultSet public abstract int executeUpdate(String sql) throws SQLException Ejecuta una sentencia UPDATE, DELETE, INSERT o cualquier otra sentencia SQL que no devuelva un conjunto de registros, y devuelve el nmero de registros afectados por la sentencia.

Ing. Martn Salcedo Quiones

Pgina 7

Universidad Catlica Los ngeles de Chimbote Programacin Visual II


public abstract void setMaxRows(int max) throws SQLException Establece el nmero mximo de registros que puede devolver executeQuery() public abstract int getMaxRows() throws SQLException Devuelve el nmero mximo de registros que puede devolver executeQuery() public abstract void setQueryTimeout(int seconds) throws SQLException Establece el tiempo en segundos que el controlador esperar hasta que el sistema gestor de bases de datos devuelva un resultado public abstract int getQueryTimeout() throws SQLException Devuelve el tiempo en segundos que el controlador esperar hasta que el sistema gestor de bases de Datos devuelva un resultado public abstract void close() throws SQLException Libera los recursos asociados a la sentencia

La interfaz ResultSet, el mtodo executeQuery que se utiliza para ejecutar sentencias SQL devuelve un objeto de tipo ResultSet. ste contiene las filas o registros obtenidos al ejecutar una sentencia SELECT. Para recuperar los datos contamos con muchas opciones. Todos los mtodos funcionan de la misma manera. Toman como parmetro el ndice o el nombre del campo que se desea obtener y devuelven el dato en cuestin. public abstract String getString(int columnIndex) throws SQLException public abstract String getString(String columnName) throws SQLException

Ing. Martn Salcedo Quiones

Pgina 8

Universidad Catlica Los ngeles de Chimbote Programacin Visual II


public abstract int getInt(int columnIndex) throws SQLException public abstract int getInt(String columnName) throws SQLException Adems, existen otros mtodos gracias a los cuales es posible recorrer los resultados guardados en el objeto de tipo ResultSet. public abstract int findColumn(String columnName) throws SQLException Devuelve el nmero de columna cuyo nombre se pasa como parmetro public abstract boolean next() throws SQLException Un objeto de tipo ResultSet puede contener ms de un resultado. Para ir avanzando por la lista de resultados utilizamos este mtodo, que devuelve un valor indicando si existe otro resultado o no. public abstract boolean wasNull() throws SQLException Indica si el contenido de la ltima columna accedida es NULL SQL public abstract void close() throws SQLException Libera los recursos asociados al ResultSet

Vamos a proceder a visualizar en objetos Jlist, los datos contenidos de la tabla de Escuela. 1. Creamos un objeto Jframe para abrir un nuevo formulario.

Ing. Martn Salcedo Quiones

Pgina 9

Universidad Catlica Los ngeles de Chimbote Programacin Visual II

Selecciona Formulario JFrame 2. Indicamos como nombre de clase formulario: frmverEscuelas. Luego damos click en el botn de comando Finalizar.

Quedando el entorno de NetBeans de la siguiente manera:

Ing. Martn Salcedo Quiones

Pgina 10

Universidad Catlica Los ngeles de Chimbote Programacin Visual II

3. Damos clic botn derecho sobre el diseo del formulario para cambiar el Asignar Diseo a Diseo Absoluto, lo cual nos permitir usar los objetos de control ms libremente.

Ing. Martn Salcedo Quiones

Pgina 11

Universidad Catlica Los ngeles de Chimbote Programacin Visual II


4. Colocamos los objetos de control quedando el diseo del formulario de la siguiente manera:

5. Borramos los Items de cada objeto Jlist y colocamos los nombres a cada objeto de control. Recuerden que para eliminar los items de cada Jlist hay que hacer uso de model que se encuentra en la ventana de propiedades.

lstCod

lstEsc

lstFac

Ing. Martn Salcedo Quiones

Pgina 12

Universidad Catlica Los ngeles de Chimbote Programacin Visual II


6. A continuacin procedemos a colocar la programacin.

En la primera llave (color rojo) observamos que importamos los paquetes java.sql (todo lo que acabamos de ver) y el paquete javax.swing para poder utilizar la clase JoptionPane para la visualizacin de un mensaje a travs de su mtodo ShowMessageDialog. En la segunda llave se define las variables que se van a usar. Vendra hacer los atributos de la clase frmverEscuelas. Como tenemos establecer conexin usaremos un objeto Connection (conn), para hacer una operacin de consulta usaremos un objeto Statement (st) y para almacenar los resultados de la consulta usaremos un objeto ResultSet
Ing. Martn Salcedo Quiones Pgina 13

Universidad Catlica Los ngeles de Chimbote Programacin Visual II


(rs). Como la aplicacin hace uso de los Jlist se tiene crear 3 objetos instanciados de la clase DefaultListModel (mayor informacin en la sesin 4 del curso de Programacin Visual I). Posteriormente preparamos variables para indicar el nombre de la base de datos, el login, el password y el url. En la tercera llave se ha diseado un mtodo denominado Enlace que permitir establecer conexin con la base de datos universidad. 7. La clase frmverEscuela tienen un mtodo del mismo nombre frmverEscuela(), esto es lo que se denomina mtodo constructor. Deseamos que los datos se muestren en los objetos Jlist al momento de la ejecucin del formulario debemos programar en el mtodo antes mencionado.

Los objetos instanciados de la clase DefaultListModel deben ser vinculados a cada uno de las cajas de listas. Luego usando el bloque try{ } que por cierto sirve para interceptar errores y si lo hubiera ejecutara lo programado
Ing. Martn Salcedo Quiones Pgina 14

Universidad Catlica Los ngeles de Chimbote Programacin Visual II


en el bloque catch{ }, establecemos la conexin usando el mtodo Enlace, creamos el objeto st de tipo Statement (se encuentra listo para realizar una operacin) y luego ejecutamos una sentencia de consulta con select cuyo resultado va ocasionar que los datos se almacenen en el objeto rs del tipo ResultSet. Finalmente con el mtodo next se logra desplazar a travs de los registros de datos para ir llenado los objetos modelo1, modelo2, modelo3 y modelo4 y de esta forma llenamos los objetos Jlist lo que nos permitir ver en el formulario los datos de la tabla de Equipo. 8. Luego de ingresar cuatro registros en la tabla de Escuelas y si ejecutamos la aplicacin observamos lo siguiente:

Ing. Martn Salcedo Quiones

Pgina 15