Story Transcript
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Tecnología Cliente Servidor
USO DEL ENTORNO DE NETBEANS PARA EL ACCESO DE LA BASE DE DATOS Y EL PAQUETE JAVA.SQL
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 conexión a la base de datos.
1
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Tecnología Cliente Servidor
2. Observamos en la figura anterior las carpetas referidas a Tables (tablas), Views (vistas) y Procedures (procedimeintos). Si expandimos el nodo referido a Tables veremos la tabla estadio.
3. Si seleccionamos el nodo referido a Tables y damos clic botón derecho, se muestra
2
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Tecnología Cliente Servidor
un menú flotante y luego elegimos la opción Create Table.
4. Vamos a proceder a crear la tabla de Equipo con los campos codequipo int, nombre varchar(40), representante varchar(32), entrenador varchar(40), grupo char(1) y estado bit. Una vez indicado los campos damos clic en el botón de comando OK.
5. Volvemos al entorno de NetBeans y observamos en la pestaña de Services la nueva tabla de Equipo.
3
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Tecnología Cliente Servidor
6. Si deseamos insertar un registro a una de las tablas a través del comando insert, seleccionamos el nodo referido a Tables. Dando clic botón derecho se muestra un menú flotante y luego seleccionamos la opción Execute Command...
7. Escribimos el comando para insertar un nuevo registro en la tabla de Equipo, luego procedemos a ejecutarlo.
4
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Tecnología Cliente Servidor
8. Luego si escribimos el comando select para consultar los datos de la tabla Ciudad, observaremos el contenido de dicha tabla.
Como verán 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 conocimeintos adquiridos en los cursos referentes a base de datos, procedan a experimientar el entorno gráfico que nos ofrece NetBeans.
5
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Tecnología Cliente Servidor
Paquete Java.SQL para trabajar con base de datos Para realizar una aplicación para que realice cualquier operación de lo más sencilla posible se necesita de la utilización 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 más importantes clases o interfases y en la medida en que se desarrolle las sesiones se detallarán más mencionando los métodos que tienen para hacer fácil el acceso a la base de datos. ●
La clase DriverManager , permite llevar a cabo una conexión con la base de datos logrando cargar un driver. Existen varios métodos 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 métodos recibe como parámetro la dirección URL que identifica la base de datos. En el caso en que sea necesario proporcionar un usuario y una contraseña para acceder a la base de datos (como sucede en MySql) se utiliza el segundo de los métodos. Una dirección URL JDBC proporciona un método de localización 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 información contenida en la dirección URL JDBC de la misma, por lo que son los desarrolladores los que fijan en la mayoría de los casos la sintaxis.
●
La interfaz Connection, cuando se utiliza uno de los métodos anteriormente mencionados se obtiene un objeto de tipo Connection que representa como es de esperar la conexión con la base de datos. El objeto obtenido cuenta con varios métodos. Dos de los más importantes son: public abstract Statement createStatement() throws SQLException public abstract void close() throws SQLException El primero de los métodos sirve para crear un objeto del tipo Statement. Las frases SQL se ejecutan normalmente mediante la utilización 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 6
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Tecnología Cliente Servidor
establecer una conexión es una operación costosa, por lo que tampoco se debe estar abriendo y cerrando la conexión con frecuencia.
●
La interfaz Statement, los objetos de tipo Statement permiten realizar consultas y efectuar operaciones de actualización, borrado o inserción de datos. En algunos casos es interesante también fijar ciertos parámetros 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 métodos que se citan a continuación son algunos de los más 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 número de registros afectados por la sentencia. public abstract void setMaxRows(int max) throws SQLException Establece el número máximo de registros que puede devolver executeQuery() public abstract int getMaxRows() throws SQLException Devuelve el número máximo 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 método 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 métodos funcionan de la misma 7
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Tecnología Cliente Servidor
manera. Toman como parámetro el índice o el nombre del campo que se desea obtener y devuelven el dato en cuestión. public abstract String getString(int columnIndex) throws SQLException public abstract String getString(String columnName) throws SQLException public abstract int getInt(int columnIndex) throws SQLException public abstract int getInt(String columnName) throws SQLException Además, existen otros métodos 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 número de columna cuyo nombre se pasa como parámetro public abstract boolean next() throws SQLException Un objeto de tipo ResultSet puede contener más de un resultado. Para ir avanzando por la lista de resultados utilizamos este método, 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 Equipo. 1) Creamos un objeto Jframe para abrir un nuevo formulario.
8
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Tecnología Cliente Servidor
2) Indicamos como nombre de clase formulario: frmverEquipos. Luegos damos click en el botón de comando Finish.
Quedando el entorno de NetBeans de la siguiente manera:
3) Damos clic botón derecho sobre el diseño del formulario para cambiar el Set Layout a AbsoluteLayout, lo cual nos permitirá usar los objetos de control más libremente.
9
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Tecnología Cliente Servidor
4) Colocamos los objetos de control quedando el diseño 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
10
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Tecnología Cliente Servidor
model que se encuentra en la ventana de propiedades.
6) A continuación procedemos a colocar la programación.
11
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Tecnología Cliente Servidor
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 visualización de un mensaje a traves de su método ShowMessageDialog. En la segunda llave se define las variables que se van a usar. Vendría hacer los atributos de la clase frmVerEquipo. Como tenemos establecer conexión usaremos un objeto Connection (conn), para hacer una operación de consulta usaremos un objeto Statement (st) y para almacenar los resultados de la consulta usaremos un objeto ResultSet (rs). Como la aplicación hace uso de los Jlist se tiene crear 4 objetos instanciados de la clase DefaultListModel (mayor información en la sesión 4 del curso de Programación Visual). 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 diseñado un método denominado Enlace que permitirá establecer conexión con la base de datos campeonatouefa. 7) La clase frmVerEquipo tienen un método del mismo nombre frmVerEquipo(), esto es lo que se denomina método constructor. Deseamos que los datos se muestren en los objetos Jlist al momento de la ejecución del formulario debemos programar en el método antes mencionado.
12
Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas
Asignatura: Tecnología Cliente Servidor
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 ejecutaría lo programado en el bloque catch{ }, establecemos laconexión usando el método Enlace, creamos el objeto st de tipo Statement (se encuentra listo para relizar una operación) 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 método next se logra desplazar
a través 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) Recuerda que en la sesión anterior sólo se agregó un registro a la tabla de Equipo. Si gustan ingresen más registros a la tabla de Equipo y observarán los resultados. Si ejecutamos la aplicación observamos lo siguiente:
En la segunda unidad de aprendizaje veremos más operaciones con base de datos referido a mantenimientos y consulta de datos.
13