El lenguaje SQL

Vamos a revisar algunas instrucciones muy básicas de sql; para mayor comodidad, podemos utilizar las hojas que nos proporciona Eclipse segun definimos aqui, o podeis instalar  MySql en linux; tenéis este artículo que os puede ayudar: Sigue leyendo

Publicado en Formacion, PHP y MySQL/MariaDB | Etiquetado , , | Deja un comentario

Instalación de la Base de datos y un entorno gráfico

Todo nuestro trabajo, se va a realizar utilizando ordenes SQL, tanto para guardar la información, como para extraerla,  actualizarla o borrarla, pero para poder utilizar este lenguaje, necesitamos tener acceso a una base de datos, y nos puede servir la mayoría de RDBMS que hay en el mercado, ya que, al quedarnos en la parte estándar de SQL, las Querys (así  llamaremos a las órdenes que vamos a lanzar), deberían funcionar en la mayoría de ella.

Sin embargo, y para centrarnos en alguna, vamos a trabajar de forma explícita con dos muy conocidas:

 

Si queréis instalar MySql en linux, tenéis este artículo que os puede ayudar:

Tu máquina de desarrollo. Instalando LAMP

si vais a realizar la instalación de MySQL en Windows, podéis leer este otro:

Tu maquina de desarrollo – Instalando XAMPP (en Windows)

 

Si optáis por utilizar la versión gratuita de la famosa base de datos de Oracle, encontrareis una guía de instalación en.

Instalando Oracle Database express Edition

Instalando el entorno Grafico

Una vez instalada y funcionando la Base de datos (o más exactamente el RDBMS) y aunque todos disponen de una interface de línea de comando ( o casi), es cómodo disponer de un sitio en donde escribir nuestras querys, y que nos pueda ayudar recordando nombres de campo, nombres de tabla,….

En ese aspecto, todavía hay un surtido mayor, aunque nosotros nos vamos a limitar a unos pocos:

Para MySQL, disponemos de:

  • phpMyAdmin , que funciona en entorno web
  • MySQL Workbench, aplicación de escritorio que podéis instalar siguiendo el artículo “Mysql: instalando workbench

Para Oracle Express Edition utilizaremos otra herramienta de Oracle, Oracle SQL Developer cuya instalación la tenéis detallada en “Instalando y conectando SQL Developer

Nosotros, aquí vamos a ver como conectar una BBDD a Eclipse; haremos la experiencia con MySQL

Para ello, descargamos el driver de https://dev.mysql.com/downloads/connector/j/

Y escogemos el que nos interese, a continuación

Debéis descomprimir el fichero,

Como resultado de esto, deberéis tener una carpeta con el Driver; en la carpeta descomprimida.

Aunque Eclipse Tiene una perspectiva prevista, es mejor que añadamos un plugin; para eso, vamos a Help->Eclipse Marketplace

Y en la ventana que aparece, escribimos DTP (Data Tools Platform) y buscamos

Ya podemos instalar el plugin

 

Ahora, abrimos Eclipse y cambiamos la perspectiva

Seleccionando Otras

Podréis seleccionar “Database Development”, y allí crear la conexión

Seleccionamos “Nuevo”

Escogemos MySQL,  e indicamos el nombre con el que reconoceremos la conexión (ConexionPruebas), y pulsamos “Next”.

Si no os aparece ningún Driver, pulsar en el botón que os indico en la imagen:

Se os ofrece una lista de drivers:

Al seleccionarlo, puede aparecer un mensaje (remarcado en la imagen) diciendo que no se encuentra el jar correspondiente. Pasáis a la pestaña de “JAR List”,

En donde posiblemente, vosotros tengáis otra línea, pero podéis pulsar en “Edit  JAR/Zip…” y buscar en vuestro disco, la carpeta que habéis descomprimido

 

Al darle OK, volverá a la pantalla anterior, pero esta vez tendréis un driver disponible

Al confirmar esta pantalla, aparece el dialogo de conexión

En Database deberemos indicar la BBDD a la que nos queremos conectar; si no existe, debemos asegurarnos que en URL no hay escrito nada más que la ruta al motor.

La Password es la que hemos indicado durante la instalación de MySQL

Marcaremos Save password, para evitar tener que estarla introduciendo constantemente, y siempre que estemos en entorno seguro…

Podéis probar que los datos son Correctos con el botón Test Connection.

En la perspectiva de “Database Development” nos aparece la conexión creada; y como necesitamos un área para poder escribir los comandos, utilizamos sobre la conexión el botón derecho de ratón y seleccionamos SQL Scrapbook.

En la hoja que aparece, si en la parte de arriba no están los datos de conexión, los seleccionamos nosotros

Y como no tenemos ninguna base de datos, no podemos rellenar el último desplegable, para solucionarlo, vamos a crear nuestra base de datos

Escribimos la orden, utilizamos el botón derecho para dar la orden “Execute All”

Y ya la tendremos creada. Ahora tenemos que modificar los datos de conexión, para ello, botón derecho sobre la conexión

Y seleccionamos Properties

Y le añadimos el nombre de la base de datos recién creada, podemos probar la conexión, y cerrar el dialogo con “OK”

Cada uno de estos Scrapook que utilicemos, los podemos ir guardando como archivos SQL para tener las ordenes preparadas, y también podemos utilizar el mismo sistema para ir consiguiendo nuevas hojas para escribir.

Ahora, podemos utilizar uno, para crear una tabla

Crearemos la tabla PAIS ; la orden será:

Pero antes de ejecutarla, debemos completar los datos de la cabecera, incluyendo el nombre de la base de datos

En la parte inferior de la pantalla, aparece el resultado; en este caso:

Si deseamos borrar una tabla, nos bastaría con hacer

Vamos a crear el resto de tablas que vamos a usar; la de PROVINCIAS

Y la de clientes

Ahora introduciremos algunos datos, para poder probar; para ello, se utiliza la instrucción INSERT (el siguiente código se puede copiar)

Insert into PAIS (ID_PAIS,PAIS_NOMBRE) values ('1','España');

— Tabla de provincias


Insert into PROVINCIA (ID_PROVINCIA,PROVINCIA_NOMBRE,ID_PAIS) 
                         values ('1','Barcelona','1');

Insert into PROVINCIA (ID_PROVINCIA,PROVINCIA_NOMBRE,ID_PAIS) 
                        values ('6','Tarragona','1');

Insert into PROVINCIA (ID_PROVINCIA,PROVINCIA_NOMBRE,ID_PAIS) 
                       values ('7','Lerida','1');

Insert into PROVINCIA (ID_PROVINCIA,PROVINCIA_NOMBRE,ID_PAIS) 
                       values ('10','Gerona','1');

— Tabla de clientes

Insert into CLIENTES (ID,USUARIO,PASSWORD,NOMBRE,DIRECCION,POBLACION,ID_PROVINCIA,FECHA_ALTA)
       values ('1','miguel','miguel','Miguel Garcia','Pez 5','Barcelona','1','1995-10-20');

Insert into CLIENTES (ID,USUARIO,PASSWORD,NOMBRE,DIRECCION,POBLACION,ID_PROVINCIA,FECHA_ALTA) 
      values ('2','antonio','antonio','Antonio Perez','Acuario 32 1º','Barcelona','1','2006-12-05');

Insert into CLIENTES (ID,USUARIO,PASSWORD,NOMBRE,DIRECCION,POBLACION,ID_PROVINCIA,FECHA_ALTA) 
      values ('3','jjose','jjose','Jose Rodriguez','Marsalada 123 ','Barcelona','1','2015-05-01');

NOTA:

Las columnas IDxxxx, las hemos declarado Clave Primaria, y AUTO_INCREMENT, por lo que la podemos dejar en blanco, pero si lo indicamos, no se puede repetir.

 

Ahora, podemos ver el contenido de cualquier tabla, desplengando el epígrafe correspondiente, y con el botón derecho, seleccionamos Data->edit

Y nos aparece el contenido de la tabla

Y nos permite modificar el contenido

Publicado en Formacion, PHP y MySQL/MariaDB | Etiquetado , | Deja un comentario

Java para programadores (9.7) – Cuadros de dialogo

Los cuadros de dialogo, son objetos independientes de la ventana de trabajo (aunque pueden bloquearla). Normalmente, los utilizaremos para comunicar mensajes o para realizar acciones que por sus características, se ha de realizar aparte de la pantalla principal. Sigue leyendo

Publicado en Formacion, Java | Etiquetado , , | Deja un comentario

Java para programadores (9.6) – Listas y Tablas

JList – Muestra un conjunto de opciones de texto y/o gráficas y permite selección única, de rango simple y de rango múltiple

Constructor

JList() Crea un JList vacio y read-only.
JList(ary[] listData) Crea JList con los elementos del array

 

Metodos

int getSelectedIndex()
Object getSelectedValue()
Devuelve el índice del elemento seleccionado o su valor
void setSelectionMode(ListSelectionModel.SELECTION Forma en que se realizara la selección

SINGLE_SELECTION
SINGLE_INTERVAL_SELECTION
MULTIPLE_INTERVAL_SELECTION

swing jlist

 

 

JTable Componente con capacidad para mostrar información de forma tabular, teniendo filas y columnas

Este componente se especializa en la presentación de Arrays multidimensionales, y para eso, deberemos indicar el array de datos, con la información a mostrar, y un segundo array de una dimensión, para indicar los títulos de las columnas

swing JTable

Publicado en Formacion, Java | Etiquetado , | Deja un comentario

Java para programadores (9) – Entorno gráfico

Toda aplicación, necesita de una manera u otra interaccionar con el usuario. En esta apartado, veremos cómo trabajar con objetos de pantalla, capturando y presentando información en pantallas con formatos más agradables que la propia consola. Conoceremos también la programación orientada a eventos y los cuadros de dialogo

Sigue leyendo

Publicado en Formacion, Java | Deja un comentario

Ejercicio de java swing, listas/tablas

Clase PantallaPeticion

Necesitamos grabar los nombres de nuestros usuario en un fichero en disco, para ello, prepararemos una pantalla (con JFrame) que solicite el nombre, y con un botón, que al pulsarlo, lo añada a la tabla, junto con un numerador

Si cuando pulsa el botón de “Añadir” el campo de nombre está en blanco, o tiene una longitud menor de 5, se informa del error (JDialog) y se vuelve a pedir

Cuando queramos finalizar, pulsaremos el botón de fin, que nos preguntara el nombre y la ubicación del fichero en donde deseamos guardar la información, Cuando nos lo indiquen, procederemos a realizar la grabación del fichero

 

Para la definición de JTable, será necesario acudir a páginas como https://docs.oracle.com/javase/tutorial/uiswing/components/table.html

Para la grabación del fichero, podemos usar GrabarDatos, escrito en el ejercicio anterior

Solucion

 

 

 

 

 

Publicado en Formacion, Java | Etiquetado , | Deja un comentario

Solucion:Ejercicio de java swing, listas/tablas

La clase GrabarDatos se resolvió anteriormente, por lo que solo revisamos la clase PantallaPeticion

En esta ocasión, hemos hecho que la clase herede de JFrame e implemente ActionListener, por lo que no será necesario crear un JFrame, porque ella lo es:

Definición de campos y constantes

Constructor

La clase configura la pantalla, y el resto lo hace atendiendo a eventos

ConfigurarVentana

Recordad, la clase es JFrame, por lo que utilizamos métodos heredados para poner título (42), conseguir su contenedor (43), configurar botón de salida (44), establecer tamaño y auto centrar la pantalla

En 46 y 47, establecemos el layout como SpringLayout, para permitir un control preciso de posicionamiento

De la 49 a la 60, vamos creando componentes, configurándolos, y a los dos botones, les suscribimos como Listener esta misma clase (hemos implementado ActionListener)

De la 71 a la 76, Añadimos todos los componentes y de la 79 a la 88, damos las coordenadas de cada uno. No siempre utilizo las paredes del contenedor; es muy útil relacionar un componente con otro próximo.

 

Tratamiento de eventos

Cada vez que alguien pulse un botón, se llamara a este método, ya que hemos registrado esta clase como Listener.

Lo primero que necesitamos hacer, es saber que botón se ha pulsado. En la 98 conseguimos el botón pulsado (source del evento) y obtenemos el nombre que asignamos al crearlo.

Si se trata del botón de enviar, se llama al método addToRow, que filtra el dato y si es correcto nos lo añade al JTable, luego, forzamos un refresco de la JTable (102) y borramos el contenido del cuadro de texto (103)

Haya habido error o no, posicionamos el foco encima del cuadro de texto para que se corrija, si ha habido error, o para que se entre otro (estará en blanco) si ha ido bien.

Si se trata del botón de grabar, obtiene los datos de JTable (108) y los envía al método grabar (109), al finalizar, cierra el programa

addToRow

Extrae el texto entrado de la JTextArea (119), y si la longitud es correcta, crea un array de dos elementos, le pone el contador en uno, y el texto recuperado en el otro y lo añade a JTable, a través de su modelo. Si la longitud está mal, presenta un mensaje (127) y vuelve por falso

leerDatos(JTable)

Primero comprueba que le hayan pasado un objeto, y luego consigue el número de filas (142) y columnas (143)

Inicializa un array de salida con las longitudes encontradas (144)

De 145 a 149 es un doble bucle for para recorrer todas las filas y todas las columnas, e irlas guardando en el array

Luego ya solo queda devolverlo.

 

grabar()

Este método recibe el array con todo el contenido del JTable

Crea la instancia de GrabarDatos (159)

Llama al método prepara (160) para que GrabarDatos solicite el fichero, y lo abra. Si vuelve por true, recorre todo el array grabando el contenido de la columna 1 que es donde está el nombre del usuario

El método que crea, es el main

Instancia la pantalla y la hace visible.

Publicado en Formacion, Java | Etiquetado | Deja un comentario

Ejercicio java swing y ficheros

Preparar una clase GrabarDatos con tres métodos

prepara() – Utiliza JFileChooser para solicitar la ruta y el nombre de fichero a grabar; si lo puede abrir retorna true, si no, false

graba(String str) – Recibe una string y la graba en el fichero abierto.

close() – Cierra el fichero .

Preparar una clase PrGrabar, que presenta una pantalla con un botón

Ejercicio java swing y file

Al pulsarlo, Instancia la clase GrabaPantalla y con ella crea un fichero y le graba dos líneas con cualquier texto

Solucion

Publicado en Formacion, Java | Etiquetado , | Deja un comentario

Solucion Ejercicio java swing y ficheros

Clase GrabarDatos ************************************************

De la 16 a la 18, configuramos JFileChooser, para que empiece ofreciendo el disco C:

En la 19, presentamos la pantalla de dialogo, como esta clase no tiene pantalla, le pasamos null.

En la 20 comprobamos si nos han seleccionado fichero, y si es así, en la línea 22 creamos un FileWriter con la ruta que nos entrega JFileChooser.

Si todo va bien, con el FileWriter, creamos un PrintWriter para tenerlo todo preparado para grabar

El método graba (líneas 33 a 38) se limitan a grabar la string que reciben

El método close (líneas 40 a 48) cierra el dispositivo abierto

 

Clase PrGrabar *************************************************

En las líneas 15 a 18, creamos el JFrame, configuramos el botón de cierre, lo centramos en pantalla y le definimos el tamaño

En la 20, preparamos el botón y le añadimos el ActionListener que se disparara cuando lo pulsen

De la 22 a la 30, indicamos lo que ha de hacer cuando se pulse

  • Instancia la clase GrabarDatos (23)
  • Da la orden de prepara(), por lo que GrabaDatos abrirá el dialogo para preguntar por el nombre del fichero
  • Da dos órdenes de grabación, para grabar las cadenas que queremos (25 y 26)
  • Da la orden de cerrar el fichero (27)
  • Cierra el programa(28)

Las líneas 34 a 39 se encargan de establecer el Layout de la pantalla, añadirle el botón, y hacer visible la pantalla.

Publicado en Formacion, Java | Etiquetado , | Deja un comentario

Ejercicio java swing

La propuesta es realizar una clase en donde instancie la pantalla, a la que añadimos un Botón,  como un objeto, y además implemente los ActionListener necesarios para que cuando se pulse el botón recoger la información de los campos e imprimirlos en la consola.

Esta es la pantalla

Solucion

Publicado en Formacion, Java | Etiquetado , | Deja un comentario