Lectura de una tabla MySQL con Java

Se necesita realizar una aplicación Java que permita acceder a una servidor MySQL en aras de poder mostrar en pantalla los registros de una determinada tabla de una base de datos.

BD-MYSQL

En primer lugar habrá que establecer con Java una conexión con el servidor MySQL


Veamos el código necesario para realizar este programa:

// Se importa la librería siguiente que permite trabajar con bases de datos
// haciendo uso del MySQL.
import java.sql.*;

public class conbd {

public static void main(String[] args) throws SQLException {

// Establecemos la conexión con el servidor MySQL

Connection con = null;
String sURL = «jdbc:mysql://localhost:3306/empresa?useSSL=false&serverTimezone=UTC»;
con = DriverManager.getConnection(sURL,»root»,»12345″);

// Escribimos la sentencia SQL que posibilita realizar     // una consulta de los nombres de productos de una tabla   // productos.

try (PreparedStatement stmt = con.prepareStatement(«SELECT nif FROM socios»)) {
ResultSet rs = stmt.executeQuery();

// En la variable rs de tipo ReseultSet tenemos todos los registros de la tabla seleccionados. En el siguiente bucle while se lee y se visualiza por pantalla cada uno de los valores de nif de cada uno de los registros previamente seleccionados.

while (rs.next())
System.out.println (rs.getString(«nif»));

} catch (SQLException sqle) {
System.out.println(«Error en la ejecución:»
+ sqle.getErrorCode() + » » + sqle.getMessage());
}
}
}

Javascript

Javascript es un lenguaje de programación para el diseño web. Su código se inserta en forma de scripts o bloque dentro del código HTML de una página web mediante el empleo de las siguientes marcas:

<HTML>

<script languaje=»javascript»>

</script>

</HTML>

La característica principal del lenguaje de programación Javascript respecto a otros lenguajes de programación empleados en el desarrollo web es que su código se ejecutará eclusivamente en el ordenador cliente que ha accedido (desde el navegador) a la página web que contiene código Javascript. Con ello, se conseguirá aliberar de trabajo al servidor web que hospeda a la página web ya que, de forma repetida incluso, dicho código Javascript se ejecutará en cada ordenador cliente que acceda a esta web.

Javascript aportará a la página web muchas cosas: animaciones, interactividad con el usuario (petición y respuesta), validación de la información introducida en un formulario, DHTML.

Por DHTML se entiende el código HTML que se genera en el tiempo de funcionamiento de la página si que exista para ello un archivo .html con dicho código HTML creado. El creador de dicho código HTML en tiempo de ejecución será Javascript.

Una última característica muy importante de Javascript es la de poder programar eventos, esto quiere decir que podemos introducir en la web código Javascript asociado al hecho de haber hecho el usuario un clic sobre un botón de un formulario, un doble clic, cerrar una página, entra por primera vez en una página, etcétera.

Todas estas cosas y algunas más las veremos y trabajaremos en este tema 3 del curso de Lenguaje de Marcas. Espero disfrutes con ello y te animes a realizar aplicaciones web con código Javascript.

Condicionales y bucles

Iniciamos tema nuevo con nuevos conceptos que nos ayudarán a implementar aplicaciones con un grado de complejidad y solvencia superior a lo estudiado y practicado en el tema 2.

De momento, gracias a los conceptos de variables, tipos de datos, operadores aritméticos ( +, -, *, /), entrada y salida de información, habéis podido crear pequeñas aplicaciones que realizaban simples cálculos matemáticos o sencillas salidas por pantalla, mostrando un determinado texto o bien el resultado de una determinada operación aritmética. Por otra parte, en algunos programas escritos por vosotros, habéis hecho uso de la entrada de información, mediante el uso en Java del scanner, técnica de gran utilidad que da la posibilidad al programa de obtener datos del usuario de la aplicación con el fin de procesarlos.

Siendo de vital importancia todos estos conceptos iniciales para vuestro inicio y progreso en el mundo de la programación de aplicaciones, todavía os encontráis en los albores de esta ciencia (la programación) la cual os ofrece un recorrido de conocimiento de amplio trayecto.

Siguiendo esta senda, en el tema que ahora iniciáis, vais a ver dos tipos de estructuras, para la programación de aplicaciones, de esencial importancia en esta área de conocimiento. Me estoy refiriendo a las estructuras condicionales y a los bucles.

En un lenguaje de programación, una estructura condicional nos ofrece la posibilidad de dar ejecución a unas determinadas líneas de código y no forzosamente a todas. Como su nombre dice, en ellas se establecerá una condición de forma que en el caso de su correcto cumplimiento se podrán poner en funcionamiento unas determinadas líneas del código de la aplicación omitiendo la ejecución de otras líneas de código que incumplen la condición estipulada en la mencionada estructura condicional.

En otras palabras, con el empleo de estructuras condicionales en un lenguaje de programación (en java: if, if…else, switch) se evita la ejecución secuencial de todas las instrucciones del programa en favor de solamente algunas de ellas.

El otro tipo de estructura básica a tratar en este tema van a ser los bucles. Mediante ellos podremos hacer programas con un menor número de lineas que si no hiciéramos uso de ellos.

Un bucle es una estructura de control que permite la ejecución, de forma repetida, de un determinado número de líneas de código del programa sin necesidad de escribirlas tantas veces como ejecuciones de las mismas se desean producir.

En este tema iremos tratando diferentes tipos de bucles (incondicionales: for, condicionales: while, …) , conoceréis sus características y aprenderéis a aplicarlos de una forma acertada en vuestras futuras creaciones.

¡ Qué el saber os atalante !

Jesús Albert Magro

Profesor de Programación en el Ciclo de DAW

Alta de un registro en una tabla de MySQL con Java

Se necesita realizar una aplicación Java que permita acceder a una servidor MySQL con el propósito de dar de alta un registro en una tabla socios de una base de datos empresa.

insert-bd-sql

Seguidamente se puede ver el código Java necesario que permite dar de alta el registro de un nuevo socio en la tabla socios de la base de datos empresa:

import java.sql.DriverManager;

import java.sql.Connection;

import java.sql.SQLException;

import com.mysql.jdbc;

import java.sql.*;

public class insertarbd {

public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {

try {

// Conexión con el Servidor MySQL indicando: nombre del servidor, usuario, contraseña y base de datos

Connection con = null;

String sURL = «jdbc:mysql://localhost:3306/empresa?useSSL=false&serverTimezone=UTC»;

con = DriverManager.getConnection(sURL,»root»,»12345″);

// Se indica que se va a proceder a insertar en una tabla de la base de datos nuevos registros (st). En tres arrays (nombres, apellidos, teléfono) se guardan los datos a guardar (total dos nuevos registros en la tabla

Statement st = con.createStatement();

String nif1=»123456782″;

String nombre1=»pepe»;

String apellidos1=»martinez»;

// Recorremos cada una de las posiciones de los arrays anteriores para añadir en la tabla cada uno de los registros, para ello se utiliza la sentencia SQL INSERT

String sql1=»INSERT INTO socios (nif, nombre, apellidos) VALUES(‘»+nif1+»‘,'»+nombre1+»‘,'»+apellidos1+»‘)»;

st.executeUpdate(sql1);

// Se muestra en pantalla el contenido de la tabla alumnos en la que hemos añadido los dos registros anteriores

con.close();

}

catch (SQLException sqle) {

System.out.println(«Error en la ejecución:»

+ sqle.getErrorCode() + » » + sqle.getMessage());

}

}

}

Arrays o arreglos

Recuerdo cuando era un estudiante de la asignatura de programación me costó entender el concepto de array así como su utilidad práctica. Vamos a ver si con el planteamiento de un caso práctico es posible facilitar el conocimiento sobre esta estructura básica y fundamental en el campo de la programación de aplicaciones:

Supongamos que un centro educativo ha requerido de nuestros servicios para que desarrollemos una aplicación informática que gestione los aspectos fundamentales de dicho centro.

En un estado avanzado de implementación de código nos encontramos programando el módulo de gestión de notas del alumnado. Ya hemos gestionado la inserción de notas de cada asignatura del alumno y después del cálculo de la nota media final del curso de cada alumno nos planteamos cómo guardar temporalmente en memoria toda esta información. Como máximo la escuela tiene una capacidad de 500 alumnos. En este caso, si desconocemos el uso de arrays en programación, deberíamos declarar en memoria 500 variables para guardar la nota final de cada uno de los alumnos. Lógicamente, desde el punto de vista del programador, se trataría de un trabajo enorme de difícil gestión y control por parte de este.

En aras de evitarle al programador este descomunal trabajo se definieron los arrays. Esta útil estructura de datos recibe diferentes nombres: vector, arrays, matriz, arreglo. En cualquier caso se trata de un nuevo tipo de datos definido por el programador que pretende gestionar múltiples datos de un mismo tipo.


Poniendo las manos en la obra, si necesitamos realizar un programa que guarde la nota de los 500 alumnos del centro educativo, podríamos tener en cuenta que cada alumno vendrá identificado por un número de expediente empezando con el alumno de número de expediente 0, luego con el alumno de número de expediente 1 y, así sucesivamente, hasta el alumno con el número de expediente 499. Vamos a ver, gráficamente, cual sería la estructura array que necesitaríamos:

Número expediente alumno012345678….    497498499
Nota del alumno6,54,68969,18,347….     1018,3

¿Cómo definimos una array en Java que represente la tabla anterior?

Mediante la declaración de un array con capacidad para guardar 500 números reales, en donde la posición en la que será guardada cada una de las 500 notas vendrá identificada por un índice que coincide con el número de expediente de cada alumno:

float[] notasalumno=new float[500];

En la linea de código anterior se ha definido una nueva variable (notasalumno) de tipo array de números reales (float) con capacidad para guardar en ella las notas de 500 alumnos.

Si por ejemplo, quiero guardar el valor de nota de 7 para el alumno con número de expediente 8 escribiré la linea siguiente de código:

notasalumno[8]=7;

Si, al alumno con número de expediente 499 quiero almacenarle su nota media (8,3) escribiré la siguiente linea de código:

notasalumno[499]=8,3;

De todas formas, en este tema que iniciamos veremos como recorrer cada una de las posiciones de una array con la intención de guardar información en cada una de sus posiciones o bien, leer los datos ya contenidos en el mismo. Solamente os puedo avanzar que para el recorrido de los diferentes tipos de arrays que veremos en este tema será muy conveniente saber utilizar los bucles ya estudiados en el tema anterior. Especial utilidad tendrán los bucles anidados en el caso de recorrido de arrays bidimensionales (matriz). No obstante, para ahondar en el conocimiento de los arrays unidimensionales y bidimensionales así como su recorrido tenemos el trabajo y estudio de este tema que ya iniciamos.

Espero que no tengáis dificultad en el aprendizaje de estos nuevos conceptos que a bien seguro os serán de gran utilidad para el desarrollo de múltiples tipos de aplicaciones.

Un saludo.

Jesús Albert Magro

Profesor de Programación

Programación orientada a objetos

Programación orientada a objetos !

Uf !, quizás la mención de este título os lleve a una asociación relativa a la dificultad o esfuerzo cognitivo que conlleva el estudio de este nuevo tema.

¡ Tranquilos ! Nunca más lejos de la realidad, siempre y cuando no hayáis perdido el hilo de los temas previos tratados en la asignatura de programación: condicionales, bucles, vectores, suprogramas…

¡ Vamos allá !

Con la programación orientada a objetos (POO) se os ofrece un nuevo paradigma de la programación diferente al utilizado en clase hasta la fecha.

La POO os abrirá las puertas al mundo de la reutilización del código y a la forma en la que, en un etapa de análisis y diseño de la aplicación, os debéis plantear la estructura y forma del futuro programa, así como cada una de las partes bien diferenciadas del mismo (objetos) interactúan entre ellos, de una forma mucho más fidedigna a como los seres humanos vemos el mundo real.

Y, ¿Cómo, los seres humanos, vemos el mundo real?

Algo así como un conjunto de objetos o elementos que, en algunos casos, interactuarán unos con otros. Veamos un ejemplo:

Si consideramos una oficina, en ella tenemos un escritorio sobre el cual se encuentra un ordenador que es utilizado por una secretaria. La oficina, el escritorio, el ordenador y la secretaria son objetos los cuales pueden tener algún tipo de relación entre ellos.

Lo más importante en la POO es que entendáis muy claramente el significado de los conceptos de clase y objeto. En programación orientada a objetos, una clase es una estructura que contiene atributos (variables) y métodos (funciones o acciones), es algo similar a una plantilla que permite crear múltiples documentos los cuales siempre tendrán la estructura de esa plantilla: tipo y tamaño de letra, márgenes…

Un objeto en POO es una variable cuyo tipo de datos es una determinada clase. Podemos definir también un objeto como una instancia de una clase. Con esta definición y teniendo en cuenta que en una clase habrán atributos (variables) y métodos (funciones y acciones), un objeto de una clase estará formado también por atributos y métodos con la única diferencia que sus atributos podrán tener valores. Por ejemplo la clasejarrón tiene el atributo color y otros métodos, el objeto jarron-rojo de la clase jarrón tendrá los mismos atributos y métodos que su clase aunque, por ejemplo, el atributo color del objeto jarron-rojo tendrá el valor rojo.

poo

Si viajamos al mundo real y pensamos en el alfarero que a partir de un único molde obtiene múltiples jarrones idénticos aunque cada uno de ellos tenga un color determinado y un dibujo, regresamos, a continuación, al mundo de la POO, el molde cerámico sería una clase con sus atributos y métodos y, cada uno de los jarrones obtenidos a partir del molde serían los objetos de la clase jarrón con métodos tales como llena-jarron y vacia-jarron y,  sus valores de atributos: color rojo, azul… que caracterizan e identifican a cada uno de los objetos.

Espero halláis captado la idea de la POO que acabo de exponer, no obstante entiendo que una vez puesta en práctica, mediante la realización de programas en POO, vuestro grado de comprensión de estos nuevos conceptos será sumamente mayor.

Como profesor este es y será mi objetivo.

¡ Nos vemos en “clase” ! Aunque para evitar equívocos mejor deciros:

¡ Nos vemos en el aula !

Jesús Albert Magro

Profesor de programación en el ciclo de DAW

Programación modular: subprogramas

Una vez conozcáis las características básicas del lenguaje de programación os veréis con ganas y seguridad de desarrollar aplicaciones cada vez más complejas y por lo tanto, en la mayoría de casos, con un mayor número de instrucciones. La consecuencia principal de todo esto será la de una mayor dificultad a la hora de leer el código asociado a vuestra aplicación. Por ejemplo, en el caso de querer dar solución a un determinado error sintáctico o de ejecución en el programa, si el número de lineas de código es algo elevado la dificultad para llevar el barco a buen puerto será mayor que si se tratara de una aplicación con bastante menor código.

Una primera solución muy conveniente para todo esto es la de comentar el código del programa en aras de una mayor legibilidad y comprensión del mismo. Si desconocéis o no os acordáis de cómo estaba implementada la aplicación y debéis de aplicar alguna modificación sobre su código, os será de gran ayuda que el mismo se encuentre correctamente comentado para que vuestra comprensión sobre su funcionamiento tenga efecto en el menor tiempo posible.

Otra forma que favorece en mucho la legibilidad y mantenimiento de una aplicación es modularizar las partes principales del programa. Por modularizar se entiende la agrupación del código en bloques, de forma bien diferenciada respecto al resto de las lineas del programa, según la tarea concreta que realice. Por ejemplo, si tenéis el encargo de realizar una aplicación que deba dar altas, bajas, consultas y modificaciones de los registros de una tabla productos en una determinada base de datos, la forma más correcta de realizar este programa es definir un módulo o subprograma por cada una de las partes principales del mismo (altas, bajas, consultas, modificaciones). Cada uno de estos módulos o subprogramas, según el lenguaje de programación que estéis utilizando, recibe el nombre de función, acción, procedimiento o método (en el lenguaje Java).

De implementar aplicaciones con subprogramas va a tratar el tema que ahora mismo iniciamos, siendo importante para vosotros que conozcáis los diferentes tipos de subprogramas y cómo utilizarlos de una forma correcta.

Ya veréis que el correcto uso de esta técnica os ayudará en la creación y mantenimiento de las futuras aplicaciones de las que vosotros mismos seréis sus creadores.

Jesús Albert Magro

Profesor del Ciclo Formativo de Desarrollo de Aplicaciones Web