Download USO DEL ENTORNO DE NETBEANS PARA EL ACCESO DE LA

Document related concepts
no text concepts found
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