Servicios de desarrollo

Tutorial JavaFX – parte 6

Lamento no estar actualizando el blog como de costumbre pero la verdad es que esta semana es una semana de mier**, pero bueno, googleando veo que mucha gente todavia no sabe como conectar javafx con mysql, pero la verdad es muy sencillo y es casi igual que como lo hice cuando escribi el post de conectar java con mysql. Por cierto es necesario que vean ese post porque sino no van a entender este

Voy a explicar algunas cosas y luego vemos el codigo. Lo primero es que para el ejemplo usare una tabla sencilla llamada “Todos” en una base de datos llamada “clientes”. La tabla solo tiene 2 campos:

id es campo clave y autoincremental y task un varchar cualquiera.

screenshot_001En este primer ejemplo haremos algo muy sencillo y poco util ya que nuestro ejemplo lo unico que hara es conectarse a la base de datos, insertar algun valor y luego mostrar todos los registros de la tabla…pero en la consola por eso decia que es poco util.

En la proxima entrega les mostrare como hacer lo mismo pero ya con una interface grafica mas decente. Y antes de empezar les vuelvo a repetir que es mejor que vean el post de como conectar java con mysql porque sino no van a entender este.

Veamos el codigo:

import javafx.stage.Stage;
import javafx.scene.Scene;
import java.lang.String;
import java.sql.*;
import java.lang.*;
import java.lang.System;
import java.sql.DriverManager;

/**
 * @author sefsinalas
 */
var nombre= "clientes";
var user= "root";
var password= "su_password";
var jdbcUrl="jdbc:mysql://localhost/{nombre}";
var driverClassName = "com.mysql.jdbc.Connection";

// Database objects
var driver:Driver     = null;
var conn  :Connection = null;
var stmt  :Statement  = null;
var rs    :ResultSet  = null;

var rows  :Number;

try {
    // Load driver
    Class.forName(driverClassName);
    try {
        // Conectar a la base de datos
        conn = DriverManager.getConnection(jdbcUrl, user, password);
        stmt = conn.createStatement();

        // Insertar registro
        rows = stmt.executeUpdate("reemplazar por la sentencia de Insercion");
        System.out.println("Insertadas {rows} filas");

        // Select and print tasks
        rs = stmt.executeQuery("reemplazar por la consulta");
        while(rs.next()) {
            System.out.println("id: {rs.getInt('id')} task: {rs.getString('task')}");
        }
    } catch(e:SQLException) {
        e.printStackTrace();
    } finally {
        if(null != rs){rs.close();}
        if(null != stmt) {stmt.close();}
        if(null != conn){conn.close();}
     }// finally
} catch(e:Exception) {
    e.printStackTrace();
}
Stage {
    title: "JavaFx y MySQL"
    width: 250
    height: 80
    scene: Scene {
        content: [
        ]
    }
}

Si se fijan en la ultima parte (Stage y Scene) no hay nada, pues como ya dije solo mostraremos los datos en modo consola.

Bueno como veran la primera parte son solo imports que si usan Netbeans se colocan automaticamente. La segunda parte son solo los datos de acceso a la base de datos, la direccion con la que jdbc se conectara a la base de datos y el tipo de driver que usaremos para conectarnos, en nuestro caso es el de MySQL, que repito, para importar esa libreria deben leer el post como conectar java y mysql.

Luego de eso inicializamos unas cuantas variables a null, estas variables son las usadas para manejarnos con la base de datos. Connection y Driver seran para conectarnos, Statement sera para ejecutar sentencias y ResultSet para hacer consultas.

Veran que he remarcado en verde las mismas sentencias que usamos en el post de como conectar java y mysql, son las que usamos para hacer la conexion a la base de datos.

Para insertar datos primero creamos el objeto que nos servira a tal proposito (linea 32) y luego ejecutamos las sentencias que deseemos, por ejemplo la de la linea 35.

Para hacer una consulta hacemos un executeQuery como el de la linea 39 y para recorrer todos los registros que nos da el resultado de ese Query hacemos un while como el de la linea 40.

Y si se preguntan porque esto todo dentro de un try-catch…eso ya lo explique en el otro post: java nos obliga a hacerlo asi, para evitar que hagamos las cosas mal. Como veran en la linea 45 esta el finaly donde cierro todas las conexiones en el orden debido.

Entonces ahora solo ejecuten y cada vez que lo hagan se insertara un registro y luego en la consola se mostraran todos los registros de la tabla.

En la proxima entrega haremos que esto sea mas util, crearemos una clase para faciltiranos la vida y crearemos una interfaz grafica sencilla. Saludos y espero que les sirva

perro

Ingeniero en Informática. Programador en PHP y Angular. Lo que mas adoro en el mundo es el conocimiento. Y el anime....y Japón...y el running...y bloguear claro y algunas otras cientos de cosas. Sigo buscando la manera de hacer mi primer millón.

9
Comenta!

avatar
sergio()
sergio()

Excelente POST !!

Daniel Py
Daniel Py

Muy Buen conjunto de Tutoriales…
Esto muy interesado en aprender JavaFx y con lo que pones aqui me has ayudado mucho…

Sigue Asi…

Oscar B.
Oscar B.

Excelente. Muchas gracias.

trackback

[…] habia dicho que en esta parte del tuto ibamos a ver como hacer una interfaz grafica para la conexion entre javafx y mysql (releer o no van a entender este)….pues […]

MiguelJ
MiguelJ

Any ideas of how to use Jfx with hibernate? Tnks

arturo

ERROR: Jar file C:\Users\arturo\Documents\NetBeansProjects\javafx_mysql\dist\javafx_mysql.jar could not be deleted.
The Jar is probably locked by running application, Web browser, emulator or antivirus.
Please check that all windows related to the application have been closed.
C:\Users\arturo\Documents\NetBeansProjects\javafx_mysql\nbproject\build-impl.xml:143: exec returned: -1
BUILD FAILED (total time: 1 second)

me sale ese error
no se a ke se deba..

saludos

jorge alejandro
jorge alejandro

ups!! no tengo ninguna base de datos pero ya me estudie el código y lo guarde para futuras consultas que seguro me sera muy util. muy parecido a java
…a y el error de arriba es por que java cuando se compila o se ejecuta el programa crea un jar y elimina el que ya esta, pero como lo estas usando no lo puede eliminar lo que debes hacer es eliminar la ventana o terminar con el preceso si usas consola
eso no pasa con java puede ejecutar varias veses el mismo programa

:up: IRIE!!

Suki_de
Suki_de

Hola perro, mi nombre es Joao, soy de Peru, tengo 20 años, estoy iniciandome en la carrera de Ingenieria de Sistemas,  dentro de las materias que llevo tengo a Netbeans para windows – tu sabes desde los inicios de la informatica TODO ES WINDOWS – y trato de aprender todo lo que puedo… me gustaria ser un gran programador….. El tutorial desde mi humilde punto de vista me parece bueno e interesante…. Espero me puedas ayudar con mis dudas cuando te pida un apoyo…… Claro no pretendo que me resuelvas todas mis tareas, solo deseo que me orientes y me… Leer mas »

sefsinalas

Hola Jao. La verdad me gustaria orientarte pero no programo en JavaFX hace años y no me acuerdo de nada :P
Todo lo que se sobre javaFX lo deje plasmado en estos 6 o 7 tutoriales.
Saludos