SlideShare uma empresa Scribd logo
1 de 30
Acceso a MySQL
Fecha: 21 de Marzo

Acceso a Bases de Datos. MisTareas

¿Qué les ha parecido hasta ahora lo que han aprendido en
las prácticas anteriores? ¿Programar no es fácil, pero si es
entretenido? …. Ahora están viendo el por qué la carrera de
informática es para gente selecta. Muchos han abandonado
tan prodigiosa carrera.

Ahora veremos en esta práctica algo que en parte me
emociona, que es el manejo de bases de datos. Quizá digas
que eso ya lo hiciste en la práctica pasada… ¿pero qué
crees? Aunque se manejan bases de datos, ahora será
diferente. Ya lo verás.

Empezaremos por trabajar con un proyecto nuevo.Haremos una aplicación sencilla que
registren las tareas que los maestros les dejamos a veces y que ustedes comúnmente jamás
olvidan (Sí como no!).

Antes de abrir NetBeans, primero abriremos la interfaz gráfica de MySQL, para crear la base de
datos y la tabla en la que vamos a almacenar todos los registros. Es algo similar a lo que vimos
en JavaDB, pero ahora podemos hacer una conexión remota.

Busquen las    siguientes        opciones:     Inicio->Todos      los    Programas->MySQL-
>MySQLAdministrator

Les mostrará la siguiente ventana:




                                                                                              1
En el cuadro de texto de Password, debes teclear root. Y das enter




Selecciona la opción de Catalogs (Catálogos) y ubica donde se encuentran los íconos
amarillos, debajo de Schemata.

Da clic derecho en cualquier parte en blando en el recuadro de los Esquemas (Schema)
Daremos clic en crear nuevo Schema.




                                                                                  2
Le damos un nombre a la base de datos (Schema): teclearemos bdtareas




                                                                       3
Selecciona la base de datos, el icono amarillo que acabas de crear con el nombre de bdtareas.
Y te aparecerá una pantalla como la siguiente:




Vamos a crear la tabla tblTareas, para ello damos clic en el botón de CreateTable que se
encuentra en la parte inferior de la pantalla. Y te aparecerá la siguiente imagen:




                                                                                           4
Damos de alta la tabla tblTareas, con los campos: idtbltareas (int) autoincremental, materia
como texto de 40 de longitud, docente de tipo texto de 40 de longitud, descripción de tipo texto
de 100 de longitud, fecha de tipo Fecha. Tal y como se muestra en la imagen.

Debes cuidar que tu pantalla para crear la tabla, quede igual que la imagen que se presentó.

Una vez que ya la tengas igual, dale clic en ApplyChanges, y aparecerá la siguiente ventana:




Es una sentencia en SQL que te solicita el MySQLAdministrator para poder crear la tabla. La
tabla la crea el servidor de MySQL. Dale clic en Execute y te regresa a la pantalla anterior.
Dale clic en Close. Y ya tenemos nuestra tabla.




                                                                                               5
Cerramos el MySQLAdministrator.

Comenzamos con      el   proyecto.   Abriremos   un   nuevo   proyecto   y   lo   llamaremos:
ControlTareas_04.




                                                                                           6
Nota: Verifica que la casilla (checkbox) de donde dice Crear clase principal(Create Main Class),
no esté activada, para no generar un Main. Dale click en Terminar (Finish).

Dentro del proyecto, comienza por agregar algunos paquetes:conexiones y ventanas.




Antes de continuar, se debe descargar el conector de la página de MySQL para Java, el
conector     J    para  Windows,     que    se  encuentra    en   el  siguiente  link
http://dev.mysql.com/downloads/connector/j/




                                                                                              7
Se descarga un archivo .zip, el cual debes descomprimirlo dentro de la carpeta de tu proyecto
de NetBeans. Se descomprime un archivo JAR, llamado mysql-connector-java-5.1.23-bin.
Una vez lo tengas en tu directorio, regresamos al NetBeans.

Demos clic derecho en Bibliotecas (Libraries) y seleccionamos agregar Añadir JAR/Archivo
(Add JAR/Folder), buscamos donde está localizado el conector de mysql que acabamos de
descomprimir y damos clic en Abrir.




Ahora ya tenemos la librería de MySQL agregada, esa librería me servirá para establecer una
conexión entre la aplicación de Java con el servidor de MySQL para poder manipular la base
de datos que acabo de crear. Sin este conector, hagan de cuenta que tienen dos teléfonos de
casa pero si cables.

Por lo tanto debemos tener el proyecto tal y como se muestra en la imagen:




                                                                                           8
Clases para Operaciones en la Base de Datos

Una de las principales características que los diversos lenguajes de programación es que
puede establecer un enlace a cualquier sistema gestor de bases de datos para poder
manipularlas. Este enlace, hagan de cuenta, es como la conexión a la línea de teléfono,
excelente analogía jajaja. Para ello debemos crear una clase en netbeans que me permita
establecer dicha conexión.

EstablecerConexion.java

Entonces comenzamos creando un Archivo .Java llamado EstablecerConexion para iniciar el
enlace. Una vez creado el archivo, definiremos cinco atributos a nivel de clase, tal y como
aparece en la imagen:




                                                                                         9
En la línea 8, donde se declara la variable servidor, se determina a qué servidor de MySQL se
va a conectar, en este caso es al servidor local, por eso se escribe localhost. En caso de que el
servidor no sea local, se suple localhost por la dirección ip donde se encuentra el servidor
deMySQL, y por consecuencia es en donde se encuentra mi base de datos. Por ejemplo:
String servidor = "jdbc:mysql://200.79.84.5/" + bd;la variable bd se le asigna el nombre de la
base de datos como la dimos de alta en MySQL. La variable nombre contiene el valor del
nombre del usuario y la variable contra guarda el password; ambas variables se utilizarán para
acceder al servidor de MySQL y tener acceso a la base de datos. Y por último, la variable con,
es de tipo Connection, es la clase que permite manipular la configuración del JAR desde
NetBeans o Java, para lograr el acceso a la base de datos.

Ahora vamos a crear el constructor de la clase. Tal y como se muestra en la imagen. Cabe
señalar que el constructor debe tener el mismo nombre de la clase.




Solo hacemos que los atributos contra y pass tengan los valore enviados a esta clase de
EstablecerConexion.JAVA, puesto que se va a acceder a esta clases desde otras dentro del
proyecto.

Declararemos otro constructor de la clase pero ahora sin recibir ningún parámetro. Cabe
mencionar que por la cualidad del Polimorfismo, podemos declarar varios métodos con el
mismo nombre, pero no con los mismos parámetros. Así que podemos declarar otro
constructor, pero ahora sin parámetros. Teniendo el código como la siguiente imagen.




El objejoClass.forName hará referencia a una librería del conector de MySQL, para poder
utilizar el Driver para la conexión a la base de datos. En caso de que no se cargue dicho Driver,
no se puede establecer la conexión a la base de datos. A la variable con, a través del
DriverManager, se establece la conexión con los valores del servidor, el nombre del usuario y el

                                                                                              10
password. Se valida si con es diferente de null, para verificar la conexión satisfactoria. Se
manipulan dos tipos de excepciones, la primera tiene que ver con el Driver y la configuración
del servidor de MySQL, para lograr la conexión. Y la segunda excepción es en caso de que
alguna clase no se haya encontrado, principalmente el Class.forName que contendrá el valor
del Driver de MySQL.

No se desanimen, son muchas validaciones para poder establecer la comunicación con la base
de datos. Esta es una de las diferencias entre la práctica pasada y esta que estamos
realizando. No se deanimen, vamos bien.

Apenas vamos iniciando, creo que esto se está poniendo interesante. ¿A poco no? Ahora con
lo que sigue. Establecemos los métodos Getter y Setter para el atributo con de tipo
Connection. Y tenemos algo parecido al siguiente código:




Con ello podemos leer y asignar el valor de la conexión al atributo con para establecer la
conexión a la base de datos.

Ahora crearemos un método de ObtenerConexion de tipo Connection, recuerden que el tipo de
método indica el valor que va a retornar una vez que se mande llamar. Es un método sencillo
pero nos sirve para regresar la conexión a la base de datos desde cualquier clase que la
mandemos llamar.




Seguimos trabajando dentro de esta clase.

Y qué dijeron? “Ya se terminaron los métodos de configuración de la conexión a la base de
datos”; pues no, lamento decirles que falta solamente falta el método que nos permite cerrar la
conexión a la base de datos. Así que a crearla.




                                                                                            11
El método close del objeto con para cerrar la conexión a la base de datos, no se recomienda
que la base de datos esté por mucho tiempo conectada porque hace que la base de datos se
inconsistente.

Ahora sí! Hemos terminado los métodos para administrar la conexión a la base de datos
utilizando el conector J de MySQL.

Operaciones de Lectura y Escritura a la Base de Datos

Como introducción, haremos notar que en las bases de datos existen dos operaciones
principales y de rigor que se debe hacer directamente a la memoria. Estamos hablando de
operaciones de lectura y escritura de datos.

Dentro de la misma clase de EstablecerConexion, haremos los métodos para aplicar los dos
tipos de operaciones. Comenzaremos creando el método que nos permite insertar datos a la
tabla que tengo en mi base de datos.

El método es:




                                                                                        12
Dentro de este método, resaltaremos dos sentencias.
    El PreparedStatement de la clase java.sql, prepara al editor de líneas de comando
       para operaciones de escritura. El servidor de MySQL trabaja a través de líneas de
       comandos y este método permite preparar y editar la línea de comandos para ejecutar
       la instrucción de SQL.
    El método execute() da la instrucción al servidor de MySQL de que ejecute la sentencia
       que se escribió en la línea de comandos en el PreparedStatement. En dado caso de
       que no haya errores la Excepción que se maneja no será lanzada, en caso de que
       ocurra algún error, el mensaje de error aparecerá en una ventana emergente.


Seguimos con el método que nos servirá para leer datos.




Dentro de este método, resaltaremos dos sentencias.
    El Statement de la clase java.sql, prepara al editor de líneas de comando para
       operaciones de lectura. El servidor de MySQL trabaja a través de líneas de comandos y
       este método permite preparar y editar la línea de comandos para ejecutar la instrucción
       de SQL.
    El método executeQuery() da la instrucción al servidor de MySQL de que ejecute la
       sentencia que se escribió en la línea de comandos en el Statement. Solo se recuperan
       los datos almacenados en la base de datos en ese momento. En dado caso de que no
       haya errores la Excepción que se maneja no será lanzada, en caso de que ocurra algún
       error, el mensaje de error aparecerá en una ventana emergente.

Terminamos con el archivo EstablecerConexion.Java. Solo ilustraré las librerías que deben ser
importadas.




                                                                                           13
OperacionesDML.Java

DML son las siglas de Lenguaje de Manipulación de Datos (siglas en inglés). En este tipo de
lenguaje, entran todas las sentencias de SQL de lectura (Select) y escritura (Insertinto, Update,
Delete).

Por lo tanto haremos los métodos necesarios para manipular solamente tres sentencias de las
mencionadas, las cuales son: Select, Insertinto, Update.

En el paquete de conexiones, crearemos un archivo .Java, el cual le pondrás el nombre de
OperacionesDML.Java. En esta clase, escribiremos todos los métodos que permitan enviar
las sentencias en SQL para las operaciones de lectura y escritura.




Notamos que la imagen que sigue se presentan las librerías que se van a necesitar en
OperacionesDML.java, cada una tiene su propia función y se recomienda que no se omita
ninguna.




                                                                                              14
En la siguiente imagen se declara la instancia objConexion de tipo clase EstablecerConexion,
para poder las operaciones de lectura y escritura utilizando la conexión a la base de datos.
Recuerda que para poder hacer dichas operaciones de lectura y escritura, debemos tener el
enlace hacia la base de datos.




Mencionaremos cada uno de los métodos que se van a utilizar dentro                          de
OperacionesDML.java para cada una de las operaciones que ya mencionamos antes.

Como primer método tenemos InsertarTareas, recibiendo parámetros de acuerdo al número de
campos que tenga en la base de datos; se menciona un parámetro por campo. Será cierto?Si,
no lo dudes, y si te preguntas que en dónde está el Idtbltareas, te diré que ese campo es de
tipo numérico y es autoincremental. Esto significa que por cada registro que se vaya insertando
en la tabla, el valor de idtbltareas va incrementando de uno en uno automáticamente.

Sin embargo vemos en la sentencia de SQL, en InsertInto, que tenemos un 0 para el primer
campo. Esto es sencillo, el autoincremental no necesita valores, sin embargo la sentencia
Insertinto requiere que la cantidad de valores que se escriben después de VALUES, sea el
mismo para cada campo. Claro hay excepciones, pero eso lo veremos luego.

En las siguientes dos imágenes, se mencionan dos métodos, uno para insertar y el otro para
modificar datos. En ambos, se necesita una instancia de tipo Statement llamada ejcutor, que
nos sirve para preparar la línea de comandos del servidor de MySQL y que reciba en esa línea
de comandos una cadena que representa la operación de insertar un registro (InsertInto); a
diferencia del segundo método, es el valor de la cadena de SQL, cambiando el insertinto por
el Update. Las dos sentencias (insertinto y update) son sentencias para escritura en la
memoria.




                                                                                            15
El siguiente método, se utiliza para leer o recuperar datos desde la base de datos a la
aplicación. Se realiza a través de un arreglo bidimensional y es el valor que regresa el método.
Recibe dos parámetros que indica cuántos renglones me arroja la consulta y la segunda una
cadena de texto que representa una sentencia en SQL que me permite ver la información de
cada campo.

Los primeros 5 renglones después del Try, son las sentencias para recuperar el número de
renglones que me arroja una lectura de la base de datos, eso nos servirá para dimensionar
nuestro arreglo Datos de tipo Object, la instancia res es de tipo Resultset, lo cual me indica
que puedo leer los datos del resultado de la consulta que se hizo. Y con el método
getInt(“cont”) lo que estamos haciendo ahí es recuperar el valor que me dio como resultado de
la ejecución de la sentencia.

En la siguiente parte, en donde se declara el arreglo bidimensional Datos de tipo Object
estamos preparando para realizar la consulta y recuperar todos y cada uno de los valores que
tenga en la tabla de mi base de datos. Recuerda que la tabla tiene un aspecto bidimensional,
por eso se declara la instancia Datos de la misma forma.

Se realiza la sentencia con el médodo de executeQuery() y me arroja otra vez un resultset,
esta rs de tipo resultset, me permitirá navegar en cada una de las celda de la tabla que me
genere como resultado de la consulta. Y con un ciclo WHILE, que lo utilizamos para recorrer
cada fila de la tabla que me generó como resultado. El método rs.nextInt, permite leer cada
renglón hasta que ya no quede ninguno

Dentro del ciclo While, llenaremos el arreglo Bidimensional Datos de tipo Object, accediendo a
cada campo que me arroja el resultset, claro está que el parámetro que se tiene entre
paréntesis, debe contener el nombre del campo al que se quiere recuperar la información.




                                                                                             16
El métodoLlenarTabla, este método nos permite desplegar el resultset generado por la
consulta realizada en el método anterior. Solo que aquí se manipula un componente con la
misma estructura que un resultset. El componente es un JTable.

Se definen las columnas, se manda llamar al método de ObtenerDatos, declado en esta clase,
para poder recibir el resultado y lo pueda asignar a la tabla.

Se declara un modelo de tabla por default para respetar la estructura bidimensional. Y se le
mandan los dos parámetros que se definieron en el método anterior. Se regresa el modelo de
tabla según sean los resultados y las columnas.




                                                                                         17
Ventanas

Menu.Java

Está clase es un JFrame. Ya lo hemos visto en las sesiones pasadas. Así que agregamos un
JFrame que se llame Menu. Le agregamos un MenuBar, le quitamos el menú de Edit,
Modificamos el texto del menú File y se lo cambiamos a Archivo. Le agregamos dos MenuItem.
Al primero le cambiamos el texto a Agregar Tareas, y al segundo Mostrar Tareas. Verifica que
la pantalla la tengas como en la figura que sigue.




Una vez que ya tengas lista la pantalla de Menú, dale clic derecho al menú de Agregar Tareas,
y sigue las opciones de: Events->Action->ActionPermormed. Y desde ahí mandaremos
llamar el JFrame de Registro; tecleando el código siguiente:




Una vez concluido el código anterior; dale clic derecho al menú de Mostrar Tareas, y sigue las
opciones de: Events->Action->ActionPermormed. Y desde ahí mandaremos llamar el
JFrame de Consultar; tecleando el código siguiente:




                                                                                           18
Quizá te marque errores en Registro y en Consultar, es porque todavía no hemos generado los
JFrame de cada uno de ellos.

Antes de iniciar con la siguiente ventana, que es la ventana de Registro; debemos aprender un
poco acerca del manejo de calendarios dentro de ambiente Swing de Java. Para ello, debemos
ingresar al siguiente link y descargar el .JAR que me permite insertar los componentes que
manejan las fechas. Cuando lo descarguen, agreguen el .JAR en su carpeta de proyectos.

Link para descargar el jcalendar
http://www.java2s.com/Code/Jar/j/Downloadjcalendar133jar.htm

Una vez que hayan descargado el .JAR y lo hayan agregado en su carpeta del proyecto;
ingresen al siguiente link que les dará unas instrucciones sobre cómo agregar los componentes
necesarios para nuestro proyecto. No quise documentar esta parte, porque sería algo diferente
que a ustedes les serviría como descanso positivo. Vaya concepto, pero creo que es el que
mejor se le acomoda jejeje.

Link para agregar el jcalendar.jar al proyecto
http://pedrosantosamado.blogspot.mx/2010/08/como-agregar-jcalendar-netbeans.html


Ya que hayan agregado la librería del JCalendar a su proyecto, tengan en cuenta los dos
elementos principales que vamos a manejar en el presente proyecto. Como se muestra en la
siguiente imagen, son dos elementos que hay que agregarlos: JCalendar y el JDateChooser.
Esos dos elementos son de tipo calendario, sin embargo el primero muestra el calendario
completo y el segundo lo muestra de forma desplegable. Esos dos se agregan al momento de
agregar las librerías (Ver imagen 4 de vínculo anterior).




                                                                                          19
Ya cuando hayan seleccionado los dos componentes, le dan Next (Siguiente) y les aparecerá la
siguiente pantalla. En ella seleccionen la opción de Swing Controls (Controles Swing). Es en
esa parte en la que aparecerán los dos componentes que hemos seleccionado en el paso
anterior. Es importante que verifiques en dónde vas a colocar los componentes, porque desde
ahí los va a insertar en los siguientes formularios.




                                                                                         20
Ya que le diste clic en Finish, dentro de tu proyecto, en la ventana de Palette (Paleta) de
componentes, verás los dos componentes como en la siguiente figura. En caso de que no te
aparezcan, te habrías brincado un paso, así que debes volver a revisar.




                                                                                        21
Registro.Java

Agregamos un JFrame llamado Registro, dentro del paquete de Ventanas.

Ya teniendo el JCalendar y el JDateChooser, ahora si agregamos los componentes al JFrame
de Registro: Etiquetas (Labels) para: Registro de Tareas, Materia, Docente, Descripción y
Fecha. Para Materia y Docente, agregar un TextField (Campo de Texto), para Descripción un
TextArea(Área de Texto), y para Fecha, selecciona el JDateChooser. Agrega solo el Botón de
Aceptar.

La ventana debe tener más o menos el mismo diseño como en el de la imagen.




                                                                                       22
Damos clic derecho en el botón de Aceptar, y seleccionamos las siguientes opciones: Events-
>Action->ActionPerformed. Y tecleamos el siguiente código.




Señalaremos dos cosas de este código.
   1. La variable fecha es de tipo String, y el formato de fecha de MySQL, aunque es de tipo
      Date, lo maneja como si fuera un String, aunque con el formato de año-mes-dia (yyyy-
      MM-dd). En ese reglón se implementa el formato que requiere el MySQL.
   2. En el reglón de con.InsertarTareas, se manda llamar al método de InsertarTareas,
      previamente escrito en las clases anteriores, mandando los parámetros en orden a
      cómo serán recibidos en el método. Es preciso que revises esta parte.

Consultar.Java

Agregamos, un nuevo JFrame en el paquete de ventanas, llamado Consultar. En este JFrame
agregamos los siguientes componentes: Etiqueta (Label) para: Tareas, un JTable con 5
columnas y solo el Botón. Al botón, le podrás Modificar como Texto.

Dale clic derecho a la tabla y selecciona la opción de Cambiar Nombre de Variable (Change
Variable Name) y le pones tblconsultas.

La ventana debe tener más o menos el mismo diseño como en el de la imagen.

                                                                                         23
Una vez teniendo la interfaz, damos clic en Source y declararemos 5 atributos que refieren a
cada uno de los valores que vamos a ingresar a la base de datos. Observa en el código y
escribe los atributos de acuerdo a los tipos que se señalan, eso se debe respetar porque son
del tipo que se definieron en la base datos. Además de una variable de tipo booleano.




Regresa a la pantalla de diseño y dale clic a cualquier lugar del JFrame, y sigue las siguientes
opciones: Events->WindowsFocus->WindowGainedFocus, para teclear el código de la
siguiente imagen. Cabe mencionar que este evento se ejecuta cuando el JFrame está
recibiendo el Cursor una vez que se carga en memoria y se empieza a visualizar.




En este código, se manda llamar al método de LlenarTabla y le mandamos el nombre de la
tabla que tenemos en el JFrame. El método se encargará de ejecutarse y de mandar los
resultados.

Regresamos al Diseño del JFrameConsultar, y damos clic en el botón de Modificar, siguiendo
las siguientes opciones: Events->Action->ActionPerformed. Se abrirá la ventana de código y
ahí se teclea el código de la imagen siguiente.




                                                                                             24
En este código, lo único que se hace es declaran una instancia de Modificar, y le modificamos
los atributos declarados en el JFrame de Modificar. Cada atributo corresponde a los campos de
la tabla de la base de datos. Quizá ahorita marque error, porque no tenemos el JFrame
Modificar, pero podemos continuar. Cada uno de los atributos recibe valores de cada celda de
la tabla.

Nota: El ejercicio está validado para que se seleccione un reglón de la tabla ya cuando
está en ejecución el programa. En caso de que no se seleccione, provocará una
Excepcion.

Modificar.Java

Agregamos un JFrame llamado Modificar, dentro del paquete de Ventanas. Y agregamos los
componentes al JFrame de Modificar: Etiquetas (Labels) para: Modificar Tareas, Materia,
Docente, Descripción y Fecha. Para Materia y Docente, agregar un TextField (Campo de
Texto), para Descripción un TextArea(Área de Texto), y para Fecha, selecciona el JCalendar.
Agrega solo el Botón de Aceptar.




                                                                                          25
Una vez teniendo la interfaz, damos clic en Source y declararemos 5 atributos que refieren a
cada uno de los valores que vamos a ingresar a la base de datos. Observa en el código y
escribe los atributos de acuerdo a los tipos que se señalan, eso se debe respetar porque son
del tipo que se definieron en la base datos.




Regresa a la pantalla de diseño y dale clic a cualquier lugar del JFrame, y sigue las siguientes
opciones: Events->WindowsFocus->WindowGainedFocus, para teclear el código de la
siguiente imagen. Cabe mencionar que este evento se ejecuta cuando el JFrame está
recibiendo el Cursor una vez que se carga en memoria y se empieza a visualizar.




Con el código de la imagen, mostramos en los componentes de los cuadros de texto, los
valores que recibieron los atributos cuando mandaron llamar la pantalla de Modificar desde la
pantalla de Consultar.

Damos clic derecho en el botón de Aceptar, y seleccionamos las siguientes opciones: Events-
>Action->ActionPerformed. Y tecleamos el siguiente código.




En el reglón de con.ModificarTareas, se manda llamar al método de ModificarTareas,
previamente escrito en las clases anteriores, mandando los parámetros en orden a cómo serán
recibidos en el método. Es preciso que revises esta parte.


Con esto hemos terminado con la codificación. Ahora sí, podemos ejecutar nuestro programa.
Las pantallas en ejecución se muestran a continuación. Están acomodadas en orden en que se
deben operar. Suerte con tu aplicación.

                                                                                             26
Ejecución

Principal




Agregar Tarea




                27
Ver Tareas Ingresadas




Seleccionas un reglón de la tabla y das clic en Modificar




                                                            28
Modificar Tareas:




Mostrar Tareas:




Conclusión

Ya conocimos un poco de cómo darle un poco de diseño a las pantallas en la práctica pasada,
ahora te toca a ti, como reto adorna la ventana de tu agenda, vamos tu puedes, deja tus
comentarios en DevTequila de Facebook ahí podemos atenderte.


                                                                                        29
Esta es una creación del club de programación, a veces programar puede ser divertido.




                                                                                        30

Mais conteúdo relacionado

Mais procurados

Tutorial de persistencia en java con postgresql
Tutorial de persistencia en java con  postgresqlTutorial de persistencia en java con  postgresql
Tutorial de persistencia en java con postgresqlCarlos Anrango
 
Toturial aplicacion base de datos jsp
Toturial aplicacion base de datos jspToturial aplicacion base de datos jsp
Toturial aplicacion base de datos jspGabriela Vazquez
 
Connection Pool + Java + MySQL
Connection Pool + Java + MySQLConnection Pool + Java + MySQL
Connection Pool + Java + MySQLChristian Mora
 
Ser vlet conectar con base de datos
Ser vlet conectar con base de datosSer vlet conectar con base de datos
Ser vlet conectar con base de datosDavid
 
Conexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysqlConexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysqlROQUE Caldas Dominguez
 
- Creación de una base de datos en MySql con Replicacion -
- Creación de una base de datos en MySql con Replicacion -- Creación de una base de datos en MySql con Replicacion -
- Creación de una base de datos en MySql con Replicacion -Tōshirō Hitsugaya
 
Unidad 9. acceso a base de datos desde java
Unidad 9. acceso a base de datos desde javaUnidad 9. acceso a base de datos desde java
Unidad 9. acceso a base de datos desde javadevsco63
 
Conexion de c sharp a my sql
Conexion de c sharp a my sqlConexion de c sharp a my sql
Conexion de c sharp a my sqlJulian Benavidez
 
Guia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando NetbeansGuia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando NetbeansEmerson Garay
 
Replicación SQL Server 2008
Replicación SQL Server 2008Replicación SQL Server 2008
Replicación SQL Server 2008UTA
 
PoolConnection + MySql + NetBeans 6.0
PoolConnection + MySql + NetBeans 6.0PoolConnection + MySql + NetBeans 6.0
PoolConnection + MySql + NetBeans 6.0Christian Mora
 
Creando y configurando un data source a mysql en glassfish4
Creando y configurando un data source a mysql en glassfish4Creando y configurando un data source a mysql en glassfish4
Creando y configurando un data source a mysql en glassfish4Ricardo P.
 
Pool Conexiones My Sql Net Beans
Pool Conexiones My Sql Net BeansPool Conexiones My Sql Net Beans
Pool Conexiones My Sql Net Beanseccutpl
 
Manual de conexión de base de datos distribuida
Manual  de conexión de base de datos distribuidaManual  de conexión de base de datos distribuida
Manual de conexión de base de datos distribuidaJorch Mendez
 
Informe programacion leomar salas
Informe programacion leomar salasInforme programacion leomar salas
Informe programacion leomar salasLeomarSalas2
 
Conexión remota a base de datos con Oracle y MySQL
Conexión remota a base de datos con Oracle y MySQLConexión remota a base de datos con Oracle y MySQL
Conexión remota a base de datos con Oracle y MySQLIvan Luis Jimenez
 
Ejemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper reportEjemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper reportjbersosa
 

Mais procurados (20)

Tutorial de persistencia en java con postgresql
Tutorial de persistencia en java con  postgresqlTutorial de persistencia en java con  postgresql
Tutorial de persistencia en java con postgresql
 
Toturial aplicacion base de datos jsp
Toturial aplicacion base de datos jspToturial aplicacion base de datos jsp
Toturial aplicacion base de datos jsp
 
Connection Pool + Java + MySQL
Connection Pool + Java + MySQLConnection Pool + Java + MySQL
Connection Pool + Java + MySQL
 
Ser vlet conectar con base de datos
Ser vlet conectar con base de datosSer vlet conectar con base de datos
Ser vlet conectar con base de datos
 
Conexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysqlConexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysql
 
- Creación de una base de datos en MySql con Replicacion -
- Creación de una base de datos en MySql con Replicacion -- Creación de una base de datos en MySql con Replicacion -
- Creación de una base de datos en MySql con Replicacion -
 
Unidad 9. acceso a base de datos desde java
Unidad 9. acceso a base de datos desde javaUnidad 9. acceso a base de datos desde java
Unidad 9. acceso a base de datos desde java
 
Conexion de c sharp a my sql
Conexion de c sharp a my sqlConexion de c sharp a my sql
Conexion de c sharp a my sql
 
Guia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando NetbeansGuia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando Netbeans
 
Replicación SQL Server 2008
Replicación SQL Server 2008Replicación SQL Server 2008
Replicación SQL Server 2008
 
Conexion del jpa con mysql
Conexion del jpa con mysqlConexion del jpa con mysql
Conexion del jpa con mysql
 
PoolConnection + MySql + NetBeans 6.0
PoolConnection + MySql + NetBeans 6.0PoolConnection + MySql + NetBeans 6.0
PoolConnection + MySql + NetBeans 6.0
 
Creando y configurando un data source a mysql en glassfish4
Creando y configurando un data source a mysql en glassfish4Creando y configurando un data source a mysql en glassfish4
Creando y configurando un data source a mysql en glassfish4
 
Pool Conexiones My Sql Net Beans
Pool Conexiones My Sql Net BeansPool Conexiones My Sql Net Beans
Pool Conexiones My Sql Net Beans
 
Manual de conexión de base de datos distribuida
Manual  de conexión de base de datos distribuidaManual  de conexión de base de datos distribuida
Manual de conexión de base de datos distribuida
 
Bases de datos con java
Bases de datos con javaBases de datos con java
Bases de datos con java
 
Informe programacion leomar salas
Informe programacion leomar salasInforme programacion leomar salas
Informe programacion leomar salas
 
Conexión remota a base de datos con Oracle y MySQL
Conexión remota a base de datos con Oracle y MySQLConexión remota a base de datos con Oracle y MySQL
Conexión remota a base de datos con Oracle y MySQL
 
Ejemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper reportEjemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper report
 
Java
JavaJava
Java
 

Semelhante a Practica 4

Conexión de visual basic a bases de datos. María Parra
Conexión de visual basic a bases de datos. María ParraConexión de visual basic a bases de datos. María Parra
Conexión de visual basic a bases de datos. María ParraMariaphlb
 
Conectar java my sql utilizando connector mysql - vb, c#, php, java.html
Conectar java my sql utilizando connector mysql - vb, c#, php, java.htmlConectar java my sql utilizando connector mysql - vb, c#, php, java.html
Conectar java my sql utilizando connector mysql - vb, c#, php, java.htmljbersosa
 
Edwin montilla trabajo corte 3
Edwin montilla trabajo corte 3Edwin montilla trabajo corte 3
Edwin montilla trabajo corte 3EdwinMontilla5
 
Base de datos desde vs6.0
Base de datos desde vs6.0Base de datos desde vs6.0
Base de datos desde vs6.0CsarDurango
 
CONEXION A BASE DE DATOS - VISUAL BASIC 6.0
CONEXION A BASE DE DATOS - VISUAL BASIC 6.0 CONEXION A BASE DE DATOS - VISUAL BASIC 6.0
CONEXION A BASE DE DATOS - VISUAL BASIC 6.0 Ambar Larrazabal
 
Conexion con visual basic 6.0
Conexion con visual basic 6.0Conexion con visual basic 6.0
Conexion con visual basic 6.0josecoronel38
 
Como conectar visual basic a las bases de josue manrique 27 332 672
Como conectar visual basic a las  bases de josue manrique 27 332 672Como conectar visual basic a las  bases de josue manrique 27 332 672
Como conectar visual basic a las bases de josue manrique 27 332 672JosueManrique3
 
Entity Framework ó Linq SQL - Visual Studio 2012
Entity Framework  ó  Linq SQL - Visual Studio 2012Entity Framework  ó  Linq SQL - Visual Studio 2012
Entity Framework ó Linq SQL - Visual Studio 2012Naim Jhon Cruzado Paredes
 
Manual reportes jsp
Manual reportes jspManual reportes jsp
Manual reportes jspjujuju12
 

Semelhante a Practica 4 (20)

Base de datos
Base de datosBase de datos
Base de datos
 
Conexión de visual basic a bases de datos. María Parra
Conexión de visual basic a bases de datos. María ParraConexión de visual basic a bases de datos. María Parra
Conexión de visual basic a bases de datos. María Parra
 
Conectar java my sql utilizando connector mysql - vb, c#, php, java.html
Conectar java my sql utilizando connector mysql - vb, c#, php, java.htmlConectar java my sql utilizando connector mysql - vb, c#, php, java.html
Conectar java my sql utilizando connector mysql - vb, c#, php, java.html
 
Conexión de Base de Datos
Conexión de Base de DatosConexión de Base de Datos
Conexión de Base de Datos
 
JDBC
JDBCJDBC
JDBC
 
Dprn3 u3 a1_rahv
Dprn3 u3 a1_rahvDprn3 u3 a1_rahv
Dprn3 u3 a1_rahv
 
Dprn3 u3 a1_eeul
Dprn3 u3 a1_eeulDprn3 u3 a1_eeul
Dprn3 u3 a1_eeul
 
Edwin montilla trabajo corte 3
Edwin montilla trabajo corte 3Edwin montilla trabajo corte 3
Edwin montilla trabajo corte 3
 
Base de datos desde vs6.0
Base de datos desde vs6.0Base de datos desde vs6.0
Base de datos desde vs6.0
 
CONEXION A BASE DE DATOS - VISUAL BASIC 6.0
CONEXION A BASE DE DATOS - VISUAL BASIC 6.0 CONEXION A BASE DE DATOS - VISUAL BASIC 6.0
CONEXION A BASE DE DATOS - VISUAL BASIC 6.0
 
Conexion con visual basic 6.0
Conexion con visual basic 6.0Conexion con visual basic 6.0
Conexion con visual basic 6.0
 
Tema 5
Tema 5Tema 5
Tema 5
 
Rabajo progra
Rabajo prograRabajo progra
Rabajo progra
 
Como conectar visual basic a las bases de josue manrique 27 332 672
Como conectar visual basic a las  bases de josue manrique 27 332 672Como conectar visual basic a las  bases de josue manrique 27 332 672
Como conectar visual basic a las bases de josue manrique 27 332 672
 
P7
P7P7
P7
 
Practica 7
Practica 7Practica 7
Practica 7
 
Practica 7
Practica 7Practica 7
Practica 7
 
Entity Framework ó Linq SQL - Visual Studio 2012
Entity Framework  ó  Linq SQL - Visual Studio 2012Entity Framework  ó  Linq SQL - Visual Studio 2012
Entity Framework ó Linq SQL - Visual Studio 2012
 
Manual reportes jsp
Manual reportes jspManual reportes jsp
Manual reportes jsp
 
Dprn3 u3 a1_casv
Dprn3 u3 a1_casvDprn3 u3 a1_casv
Dprn3 u3 a1_casv
 

Mais de cobymotion

04 servicios web
04 servicios web04 servicios web
04 servicios webcobymotion
 
Instalacion androidstudio win
Instalacion androidstudio winInstalacion androidstudio win
Instalacion androidstudio wincobymotion
 
Practica de motor a pasos
Practica de motor a pasos Practica de motor a pasos
Practica de motor a pasos cobymotion
 
Manejo de colecciones y ordenamiento
Manejo de colecciones y ordenamientoManejo de colecciones y ordenamiento
Manejo de colecciones y ordenamientocobymotion
 
Practica3 Look and Feel Java
Practica3 Look and Feel JavaPractica3 Look and Feel Java
Practica3 Look and Feel Javacobymotion
 
Manejo de ventanas 2
Manejo de ventanas 2Manejo de ventanas 2
Manejo de ventanas 2cobymotion
 
Practica google drive
Practica   google drivePractica   google drive
Practica google drivecobymotion
 
Java introduccion
Java introduccionJava introduccion
Java introduccioncobymotion
 

Mais de cobymotion (11)

04 servicios web
04 servicios web04 servicios web
04 servicios web
 
Instalacion androidstudio win
Instalacion androidstudio winInstalacion androidstudio win
Instalacion androidstudio win
 
U2 ejercicios
U2 ejerciciosU2 ejercicios
U2 ejercicios
 
Practica de motor a pasos
Practica de motor a pasos Practica de motor a pasos
Practica de motor a pasos
 
Manejo de colecciones y ordenamiento
Manejo de colecciones y ordenamientoManejo de colecciones y ordenamiento
Manejo de colecciones y ordenamiento
 
Practica5
Practica5Practica5
Practica5
 
Practica3 Look and Feel Java
Practica3 Look and Feel JavaPractica3 Look and Feel Java
Practica3 Look and Feel Java
 
Manejo de ventanas 2
Manejo de ventanas 2Manejo de ventanas 2
Manejo de ventanas 2
 
Practica google drive
Practica   google drivePractica   google drive
Practica google drive
 
Dev tequila
Dev tequilaDev tequila
Dev tequila
 
Java introduccion
Java introduccionJava introduccion
Java introduccion
 

Último

presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxlosdiosesmanzaneros
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilJuanGallardo438714
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 

Último (15)

presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 

Practica 4

  • 1. Acceso a MySQL Fecha: 21 de Marzo Acceso a Bases de Datos. MisTareas ¿Qué les ha parecido hasta ahora lo que han aprendido en las prácticas anteriores? ¿Programar no es fácil, pero si es entretenido? …. Ahora están viendo el por qué la carrera de informática es para gente selecta. Muchos han abandonado tan prodigiosa carrera. Ahora veremos en esta práctica algo que en parte me emociona, que es el manejo de bases de datos. Quizá digas que eso ya lo hiciste en la práctica pasada… ¿pero qué crees? Aunque se manejan bases de datos, ahora será diferente. Ya lo verás. Empezaremos por trabajar con un proyecto nuevo.Haremos una aplicación sencilla que registren las tareas que los maestros les dejamos a veces y que ustedes comúnmente jamás olvidan (Sí como no!). Antes de abrir NetBeans, primero abriremos la interfaz gráfica de MySQL, para crear la base de datos y la tabla en la que vamos a almacenar todos los registros. Es algo similar a lo que vimos en JavaDB, pero ahora podemos hacer una conexión remota. Busquen las siguientes opciones: Inicio->Todos los Programas->MySQL- >MySQLAdministrator Les mostrará la siguiente ventana: 1
  • 2. En el cuadro de texto de Password, debes teclear root. Y das enter Selecciona la opción de Catalogs (Catálogos) y ubica donde se encuentran los íconos amarillos, debajo de Schemata. Da clic derecho en cualquier parte en blando en el recuadro de los Esquemas (Schema) Daremos clic en crear nuevo Schema. 2
  • 3. Le damos un nombre a la base de datos (Schema): teclearemos bdtareas 3
  • 4. Selecciona la base de datos, el icono amarillo que acabas de crear con el nombre de bdtareas. Y te aparecerá una pantalla como la siguiente: Vamos a crear la tabla tblTareas, para ello damos clic en el botón de CreateTable que se encuentra en la parte inferior de la pantalla. Y te aparecerá la siguiente imagen: 4
  • 5. Damos de alta la tabla tblTareas, con los campos: idtbltareas (int) autoincremental, materia como texto de 40 de longitud, docente de tipo texto de 40 de longitud, descripción de tipo texto de 100 de longitud, fecha de tipo Fecha. Tal y como se muestra en la imagen. Debes cuidar que tu pantalla para crear la tabla, quede igual que la imagen que se presentó. Una vez que ya la tengas igual, dale clic en ApplyChanges, y aparecerá la siguiente ventana: Es una sentencia en SQL que te solicita el MySQLAdministrator para poder crear la tabla. La tabla la crea el servidor de MySQL. Dale clic en Execute y te regresa a la pantalla anterior. Dale clic en Close. Y ya tenemos nuestra tabla. 5
  • 6. Cerramos el MySQLAdministrator. Comenzamos con el proyecto. Abriremos un nuevo proyecto y lo llamaremos: ControlTareas_04. 6
  • 7. Nota: Verifica que la casilla (checkbox) de donde dice Crear clase principal(Create Main Class), no esté activada, para no generar un Main. Dale click en Terminar (Finish). Dentro del proyecto, comienza por agregar algunos paquetes:conexiones y ventanas. Antes de continuar, se debe descargar el conector de la página de MySQL para Java, el conector J para Windows, que se encuentra en el siguiente link http://dev.mysql.com/downloads/connector/j/ 7
  • 8. Se descarga un archivo .zip, el cual debes descomprimirlo dentro de la carpeta de tu proyecto de NetBeans. Se descomprime un archivo JAR, llamado mysql-connector-java-5.1.23-bin. Una vez lo tengas en tu directorio, regresamos al NetBeans. Demos clic derecho en Bibliotecas (Libraries) y seleccionamos agregar Añadir JAR/Archivo (Add JAR/Folder), buscamos donde está localizado el conector de mysql que acabamos de descomprimir y damos clic en Abrir. Ahora ya tenemos la librería de MySQL agregada, esa librería me servirá para establecer una conexión entre la aplicación de Java con el servidor de MySQL para poder manipular la base de datos que acabo de crear. Sin este conector, hagan de cuenta que tienen dos teléfonos de casa pero si cables. Por lo tanto debemos tener el proyecto tal y como se muestra en la imagen: 8
  • 9. Clases para Operaciones en la Base de Datos Una de las principales características que los diversos lenguajes de programación es que puede establecer un enlace a cualquier sistema gestor de bases de datos para poder manipularlas. Este enlace, hagan de cuenta, es como la conexión a la línea de teléfono, excelente analogía jajaja. Para ello debemos crear una clase en netbeans que me permita establecer dicha conexión. EstablecerConexion.java Entonces comenzamos creando un Archivo .Java llamado EstablecerConexion para iniciar el enlace. Una vez creado el archivo, definiremos cinco atributos a nivel de clase, tal y como aparece en la imagen: 9
  • 10. En la línea 8, donde se declara la variable servidor, se determina a qué servidor de MySQL se va a conectar, en este caso es al servidor local, por eso se escribe localhost. En caso de que el servidor no sea local, se suple localhost por la dirección ip donde se encuentra el servidor deMySQL, y por consecuencia es en donde se encuentra mi base de datos. Por ejemplo: String servidor = "jdbc:mysql://200.79.84.5/" + bd;la variable bd se le asigna el nombre de la base de datos como la dimos de alta en MySQL. La variable nombre contiene el valor del nombre del usuario y la variable contra guarda el password; ambas variables se utilizarán para acceder al servidor de MySQL y tener acceso a la base de datos. Y por último, la variable con, es de tipo Connection, es la clase que permite manipular la configuración del JAR desde NetBeans o Java, para lograr el acceso a la base de datos. Ahora vamos a crear el constructor de la clase. Tal y como se muestra en la imagen. Cabe señalar que el constructor debe tener el mismo nombre de la clase. Solo hacemos que los atributos contra y pass tengan los valore enviados a esta clase de EstablecerConexion.JAVA, puesto que se va a acceder a esta clases desde otras dentro del proyecto. Declararemos otro constructor de la clase pero ahora sin recibir ningún parámetro. Cabe mencionar que por la cualidad del Polimorfismo, podemos declarar varios métodos con el mismo nombre, pero no con los mismos parámetros. Así que podemos declarar otro constructor, pero ahora sin parámetros. Teniendo el código como la siguiente imagen. El objejoClass.forName hará referencia a una librería del conector de MySQL, para poder utilizar el Driver para la conexión a la base de datos. En caso de que no se cargue dicho Driver, no se puede establecer la conexión a la base de datos. A la variable con, a través del DriverManager, se establece la conexión con los valores del servidor, el nombre del usuario y el 10
  • 11. password. Se valida si con es diferente de null, para verificar la conexión satisfactoria. Se manipulan dos tipos de excepciones, la primera tiene que ver con el Driver y la configuración del servidor de MySQL, para lograr la conexión. Y la segunda excepción es en caso de que alguna clase no se haya encontrado, principalmente el Class.forName que contendrá el valor del Driver de MySQL. No se desanimen, son muchas validaciones para poder establecer la comunicación con la base de datos. Esta es una de las diferencias entre la práctica pasada y esta que estamos realizando. No se deanimen, vamos bien. Apenas vamos iniciando, creo que esto se está poniendo interesante. ¿A poco no? Ahora con lo que sigue. Establecemos los métodos Getter y Setter para el atributo con de tipo Connection. Y tenemos algo parecido al siguiente código: Con ello podemos leer y asignar el valor de la conexión al atributo con para establecer la conexión a la base de datos. Ahora crearemos un método de ObtenerConexion de tipo Connection, recuerden que el tipo de método indica el valor que va a retornar una vez que se mande llamar. Es un método sencillo pero nos sirve para regresar la conexión a la base de datos desde cualquier clase que la mandemos llamar. Seguimos trabajando dentro de esta clase. Y qué dijeron? “Ya se terminaron los métodos de configuración de la conexión a la base de datos”; pues no, lamento decirles que falta solamente falta el método que nos permite cerrar la conexión a la base de datos. Así que a crearla. 11
  • 12. El método close del objeto con para cerrar la conexión a la base de datos, no se recomienda que la base de datos esté por mucho tiempo conectada porque hace que la base de datos se inconsistente. Ahora sí! Hemos terminado los métodos para administrar la conexión a la base de datos utilizando el conector J de MySQL. Operaciones de Lectura y Escritura a la Base de Datos Como introducción, haremos notar que en las bases de datos existen dos operaciones principales y de rigor que se debe hacer directamente a la memoria. Estamos hablando de operaciones de lectura y escritura de datos. Dentro de la misma clase de EstablecerConexion, haremos los métodos para aplicar los dos tipos de operaciones. Comenzaremos creando el método que nos permite insertar datos a la tabla que tengo en mi base de datos. El método es: 12
  • 13. Dentro de este método, resaltaremos dos sentencias.  El PreparedStatement de la clase java.sql, prepara al editor de líneas de comando para operaciones de escritura. El servidor de MySQL trabaja a través de líneas de comandos y este método permite preparar y editar la línea de comandos para ejecutar la instrucción de SQL.  El método execute() da la instrucción al servidor de MySQL de que ejecute la sentencia que se escribió en la línea de comandos en el PreparedStatement. En dado caso de que no haya errores la Excepción que se maneja no será lanzada, en caso de que ocurra algún error, el mensaje de error aparecerá en una ventana emergente. Seguimos con el método que nos servirá para leer datos. Dentro de este método, resaltaremos dos sentencias.  El Statement de la clase java.sql, prepara al editor de líneas de comando para operaciones de lectura. El servidor de MySQL trabaja a través de líneas de comandos y este método permite preparar y editar la línea de comandos para ejecutar la instrucción de SQL.  El método executeQuery() da la instrucción al servidor de MySQL de que ejecute la sentencia que se escribió en la línea de comandos en el Statement. Solo se recuperan los datos almacenados en la base de datos en ese momento. En dado caso de que no haya errores la Excepción que se maneja no será lanzada, en caso de que ocurra algún error, el mensaje de error aparecerá en una ventana emergente. Terminamos con el archivo EstablecerConexion.Java. Solo ilustraré las librerías que deben ser importadas. 13
  • 14. OperacionesDML.Java DML son las siglas de Lenguaje de Manipulación de Datos (siglas en inglés). En este tipo de lenguaje, entran todas las sentencias de SQL de lectura (Select) y escritura (Insertinto, Update, Delete). Por lo tanto haremos los métodos necesarios para manipular solamente tres sentencias de las mencionadas, las cuales son: Select, Insertinto, Update. En el paquete de conexiones, crearemos un archivo .Java, el cual le pondrás el nombre de OperacionesDML.Java. En esta clase, escribiremos todos los métodos que permitan enviar las sentencias en SQL para las operaciones de lectura y escritura. Notamos que la imagen que sigue se presentan las librerías que se van a necesitar en OperacionesDML.java, cada una tiene su propia función y se recomienda que no se omita ninguna. 14
  • 15. En la siguiente imagen se declara la instancia objConexion de tipo clase EstablecerConexion, para poder las operaciones de lectura y escritura utilizando la conexión a la base de datos. Recuerda que para poder hacer dichas operaciones de lectura y escritura, debemos tener el enlace hacia la base de datos. Mencionaremos cada uno de los métodos que se van a utilizar dentro de OperacionesDML.java para cada una de las operaciones que ya mencionamos antes. Como primer método tenemos InsertarTareas, recibiendo parámetros de acuerdo al número de campos que tenga en la base de datos; se menciona un parámetro por campo. Será cierto?Si, no lo dudes, y si te preguntas que en dónde está el Idtbltareas, te diré que ese campo es de tipo numérico y es autoincremental. Esto significa que por cada registro que se vaya insertando en la tabla, el valor de idtbltareas va incrementando de uno en uno automáticamente. Sin embargo vemos en la sentencia de SQL, en InsertInto, que tenemos un 0 para el primer campo. Esto es sencillo, el autoincremental no necesita valores, sin embargo la sentencia Insertinto requiere que la cantidad de valores que se escriben después de VALUES, sea el mismo para cada campo. Claro hay excepciones, pero eso lo veremos luego. En las siguientes dos imágenes, se mencionan dos métodos, uno para insertar y el otro para modificar datos. En ambos, se necesita una instancia de tipo Statement llamada ejcutor, que nos sirve para preparar la línea de comandos del servidor de MySQL y que reciba en esa línea de comandos una cadena que representa la operación de insertar un registro (InsertInto); a diferencia del segundo método, es el valor de la cadena de SQL, cambiando el insertinto por el Update. Las dos sentencias (insertinto y update) son sentencias para escritura en la memoria. 15
  • 16. El siguiente método, se utiliza para leer o recuperar datos desde la base de datos a la aplicación. Se realiza a través de un arreglo bidimensional y es el valor que regresa el método. Recibe dos parámetros que indica cuántos renglones me arroja la consulta y la segunda una cadena de texto que representa una sentencia en SQL que me permite ver la información de cada campo. Los primeros 5 renglones después del Try, son las sentencias para recuperar el número de renglones que me arroja una lectura de la base de datos, eso nos servirá para dimensionar nuestro arreglo Datos de tipo Object, la instancia res es de tipo Resultset, lo cual me indica que puedo leer los datos del resultado de la consulta que se hizo. Y con el método getInt(“cont”) lo que estamos haciendo ahí es recuperar el valor que me dio como resultado de la ejecución de la sentencia. En la siguiente parte, en donde se declara el arreglo bidimensional Datos de tipo Object estamos preparando para realizar la consulta y recuperar todos y cada uno de los valores que tenga en la tabla de mi base de datos. Recuerda que la tabla tiene un aspecto bidimensional, por eso se declara la instancia Datos de la misma forma. Se realiza la sentencia con el médodo de executeQuery() y me arroja otra vez un resultset, esta rs de tipo resultset, me permitirá navegar en cada una de las celda de la tabla que me genere como resultado de la consulta. Y con un ciclo WHILE, que lo utilizamos para recorrer cada fila de la tabla que me generó como resultado. El método rs.nextInt, permite leer cada renglón hasta que ya no quede ninguno Dentro del ciclo While, llenaremos el arreglo Bidimensional Datos de tipo Object, accediendo a cada campo que me arroja el resultset, claro está que el parámetro que se tiene entre paréntesis, debe contener el nombre del campo al que se quiere recuperar la información. 16
  • 17. El métodoLlenarTabla, este método nos permite desplegar el resultset generado por la consulta realizada en el método anterior. Solo que aquí se manipula un componente con la misma estructura que un resultset. El componente es un JTable. Se definen las columnas, se manda llamar al método de ObtenerDatos, declado en esta clase, para poder recibir el resultado y lo pueda asignar a la tabla. Se declara un modelo de tabla por default para respetar la estructura bidimensional. Y se le mandan los dos parámetros que se definieron en el método anterior. Se regresa el modelo de tabla según sean los resultados y las columnas. 17
  • 18. Ventanas Menu.Java Está clase es un JFrame. Ya lo hemos visto en las sesiones pasadas. Así que agregamos un JFrame que se llame Menu. Le agregamos un MenuBar, le quitamos el menú de Edit, Modificamos el texto del menú File y se lo cambiamos a Archivo. Le agregamos dos MenuItem. Al primero le cambiamos el texto a Agregar Tareas, y al segundo Mostrar Tareas. Verifica que la pantalla la tengas como en la figura que sigue. Una vez que ya tengas lista la pantalla de Menú, dale clic derecho al menú de Agregar Tareas, y sigue las opciones de: Events->Action->ActionPermormed. Y desde ahí mandaremos llamar el JFrame de Registro; tecleando el código siguiente: Una vez concluido el código anterior; dale clic derecho al menú de Mostrar Tareas, y sigue las opciones de: Events->Action->ActionPermormed. Y desde ahí mandaremos llamar el JFrame de Consultar; tecleando el código siguiente: 18
  • 19. Quizá te marque errores en Registro y en Consultar, es porque todavía no hemos generado los JFrame de cada uno de ellos. Antes de iniciar con la siguiente ventana, que es la ventana de Registro; debemos aprender un poco acerca del manejo de calendarios dentro de ambiente Swing de Java. Para ello, debemos ingresar al siguiente link y descargar el .JAR que me permite insertar los componentes que manejan las fechas. Cuando lo descarguen, agreguen el .JAR en su carpeta de proyectos. Link para descargar el jcalendar http://www.java2s.com/Code/Jar/j/Downloadjcalendar133jar.htm Una vez que hayan descargado el .JAR y lo hayan agregado en su carpeta del proyecto; ingresen al siguiente link que les dará unas instrucciones sobre cómo agregar los componentes necesarios para nuestro proyecto. No quise documentar esta parte, porque sería algo diferente que a ustedes les serviría como descanso positivo. Vaya concepto, pero creo que es el que mejor se le acomoda jejeje. Link para agregar el jcalendar.jar al proyecto http://pedrosantosamado.blogspot.mx/2010/08/como-agregar-jcalendar-netbeans.html Ya que hayan agregado la librería del JCalendar a su proyecto, tengan en cuenta los dos elementos principales que vamos a manejar en el presente proyecto. Como se muestra en la siguiente imagen, son dos elementos que hay que agregarlos: JCalendar y el JDateChooser. Esos dos elementos son de tipo calendario, sin embargo el primero muestra el calendario completo y el segundo lo muestra de forma desplegable. Esos dos se agregan al momento de agregar las librerías (Ver imagen 4 de vínculo anterior). 19
  • 20. Ya cuando hayan seleccionado los dos componentes, le dan Next (Siguiente) y les aparecerá la siguiente pantalla. En ella seleccionen la opción de Swing Controls (Controles Swing). Es en esa parte en la que aparecerán los dos componentes que hemos seleccionado en el paso anterior. Es importante que verifiques en dónde vas a colocar los componentes, porque desde ahí los va a insertar en los siguientes formularios. 20
  • 21. Ya que le diste clic en Finish, dentro de tu proyecto, en la ventana de Palette (Paleta) de componentes, verás los dos componentes como en la siguiente figura. En caso de que no te aparezcan, te habrías brincado un paso, así que debes volver a revisar. 21
  • 22. Registro.Java Agregamos un JFrame llamado Registro, dentro del paquete de Ventanas. Ya teniendo el JCalendar y el JDateChooser, ahora si agregamos los componentes al JFrame de Registro: Etiquetas (Labels) para: Registro de Tareas, Materia, Docente, Descripción y Fecha. Para Materia y Docente, agregar un TextField (Campo de Texto), para Descripción un TextArea(Área de Texto), y para Fecha, selecciona el JDateChooser. Agrega solo el Botón de Aceptar. La ventana debe tener más o menos el mismo diseño como en el de la imagen. 22
  • 23. Damos clic derecho en el botón de Aceptar, y seleccionamos las siguientes opciones: Events- >Action->ActionPerformed. Y tecleamos el siguiente código. Señalaremos dos cosas de este código. 1. La variable fecha es de tipo String, y el formato de fecha de MySQL, aunque es de tipo Date, lo maneja como si fuera un String, aunque con el formato de año-mes-dia (yyyy- MM-dd). En ese reglón se implementa el formato que requiere el MySQL. 2. En el reglón de con.InsertarTareas, se manda llamar al método de InsertarTareas, previamente escrito en las clases anteriores, mandando los parámetros en orden a cómo serán recibidos en el método. Es preciso que revises esta parte. Consultar.Java Agregamos, un nuevo JFrame en el paquete de ventanas, llamado Consultar. En este JFrame agregamos los siguientes componentes: Etiqueta (Label) para: Tareas, un JTable con 5 columnas y solo el Botón. Al botón, le podrás Modificar como Texto. Dale clic derecho a la tabla y selecciona la opción de Cambiar Nombre de Variable (Change Variable Name) y le pones tblconsultas. La ventana debe tener más o menos el mismo diseño como en el de la imagen. 23
  • 24. Una vez teniendo la interfaz, damos clic en Source y declararemos 5 atributos que refieren a cada uno de los valores que vamos a ingresar a la base de datos. Observa en el código y escribe los atributos de acuerdo a los tipos que se señalan, eso se debe respetar porque son del tipo que se definieron en la base datos. Además de una variable de tipo booleano. Regresa a la pantalla de diseño y dale clic a cualquier lugar del JFrame, y sigue las siguientes opciones: Events->WindowsFocus->WindowGainedFocus, para teclear el código de la siguiente imagen. Cabe mencionar que este evento se ejecuta cuando el JFrame está recibiendo el Cursor una vez que se carga en memoria y se empieza a visualizar. En este código, se manda llamar al método de LlenarTabla y le mandamos el nombre de la tabla que tenemos en el JFrame. El método se encargará de ejecutarse y de mandar los resultados. Regresamos al Diseño del JFrameConsultar, y damos clic en el botón de Modificar, siguiendo las siguientes opciones: Events->Action->ActionPerformed. Se abrirá la ventana de código y ahí se teclea el código de la imagen siguiente. 24
  • 25. En este código, lo único que se hace es declaran una instancia de Modificar, y le modificamos los atributos declarados en el JFrame de Modificar. Cada atributo corresponde a los campos de la tabla de la base de datos. Quizá ahorita marque error, porque no tenemos el JFrame Modificar, pero podemos continuar. Cada uno de los atributos recibe valores de cada celda de la tabla. Nota: El ejercicio está validado para que se seleccione un reglón de la tabla ya cuando está en ejecución el programa. En caso de que no se seleccione, provocará una Excepcion. Modificar.Java Agregamos un JFrame llamado Modificar, dentro del paquete de Ventanas. Y agregamos los componentes al JFrame de Modificar: Etiquetas (Labels) para: Modificar Tareas, Materia, Docente, Descripción y Fecha. Para Materia y Docente, agregar un TextField (Campo de Texto), para Descripción un TextArea(Área de Texto), y para Fecha, selecciona el JCalendar. Agrega solo el Botón de Aceptar. 25
  • 26. Una vez teniendo la interfaz, damos clic en Source y declararemos 5 atributos que refieren a cada uno de los valores que vamos a ingresar a la base de datos. Observa en el código y escribe los atributos de acuerdo a los tipos que se señalan, eso se debe respetar porque son del tipo que se definieron en la base datos. Regresa a la pantalla de diseño y dale clic a cualquier lugar del JFrame, y sigue las siguientes opciones: Events->WindowsFocus->WindowGainedFocus, para teclear el código de la siguiente imagen. Cabe mencionar que este evento se ejecuta cuando el JFrame está recibiendo el Cursor una vez que se carga en memoria y se empieza a visualizar. Con el código de la imagen, mostramos en los componentes de los cuadros de texto, los valores que recibieron los atributos cuando mandaron llamar la pantalla de Modificar desde la pantalla de Consultar. Damos clic derecho en el botón de Aceptar, y seleccionamos las siguientes opciones: Events- >Action->ActionPerformed. Y tecleamos el siguiente código. En el reglón de con.ModificarTareas, se manda llamar al método de ModificarTareas, previamente escrito en las clases anteriores, mandando los parámetros en orden a cómo serán recibidos en el método. Es preciso que revises esta parte. Con esto hemos terminado con la codificación. Ahora sí, podemos ejecutar nuestro programa. Las pantallas en ejecución se muestran a continuación. Están acomodadas en orden en que se deben operar. Suerte con tu aplicación. 26
  • 28. Ver Tareas Ingresadas Seleccionas un reglón de la tabla y das clic en Modificar 28
  • 29. Modificar Tareas: Mostrar Tareas: Conclusión Ya conocimos un poco de cómo darle un poco de diseño a las pantallas en la práctica pasada, ahora te toca a ti, como reto adorna la ventana de tu agenda, vamos tu puedes, deja tus comentarios en DevTequila de Facebook ahí podemos atenderte. 29
  • 30. Esta es una creación del club de programación, a veces programar puede ser divertido. 30