Servicios de desarrollo

Tutorial JavaFx – parte 7

Les 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 menti

Antes de ver eso primero vamos a ver como facilitarnos un poco la vida usando una clase para nuestra conexion. Esto nos servira para poder olvidarnos un poco del codigo y hacer una clase reutilizable. Y de paso ven un poco de como usar clases y funciones en javafx

Lo primero sera crear un nuevo proyecto en nuestro NetBeans, yo le he llamado tablesjavafx, dentro de “Source Package” veran un paquete llamado igual que el nombre del proyecto, le hacemos click derecho->New->JavaFX Class y nos aparecera una ventana para crear la nueva clase, yo la he llamado “Database” y click en Finalizar. Al final les deberia quedar algo asi:

screenshot_003

Veran que en las Libraries tambien esta el driver del MySQL, si leyeron el capitulo 6 de este tuto entonces eso ya saben como importarla. Y tambien estamos usando la misma base de datos del capitulo 6.

Lo que va dentro de la clase Database.fx se los dejo en este zip ya que wordpress no me deja pegarlo aqui

Como veran es una clase super sencilla pero que nos sera muy util. Tiene 4 funciones:

  • connect: necesito explicar lo que hace?
  • shutdown: cierra las conexiones.
  • ejecutar: es para ejecutar consultas que modifiquen la base de datos(insercion, actualizacion, etc). Como ven nos devuelve un tipo Number con la cantidad de filas afectadas.
  • consultar: es para hacer consultas de seleccion. Nos devolvera un ResultSet con el resultado de nuestra consulta.

Ahora veamos un ejemplo de como usar esta clase. Nos volvemos a Main, lo primero sera declarar algunas variables e inicializamos la clase que ya habiamos creado:


var db  : Database  = null;
var rs  : ResultSet = null;
var rows: Number;
db = Database{driverName: 'com.mysql.jdbc.Connection'
 jdbcUrl   : 'jdbc:mysql://localhost/clientes'
 user      : 'root'
 password  : 'songoku'};

Y aqui algunos ejemplos de como usar las funciones que definimos en la clase Database (obviamente todo va dentro de un try-catch):


//nos conectamos
 db.connect();
 //hacemos una insercion
 rows=db.ejecutar("consulta de insercion, modificacion, etc");
 System.out.println("Insertadas {rows} filas");

 //probamos una consulta
 rs=db.consultar("consulta de seleccion");
 while(rs.next()) {
 System.out.println("id: {rs.getInt('id')} task: {rs.getString('task')}");
 }

 //cerramos la conexion
 db.shutdown();

No voy a explicar mucho porque son cosas que ya vimos, pero lo que hace es:

  1. conectarse a la base de datos
  2. una consulta de insercion o modificacion
  3. una consulta de seleccion
  4. cerrar las conexiones

Todo lo que hace es usar las funciones de la clase de la forma db.connect() donde db es el nombre con el cual inicializamos la clase mas arriba.

La idea de este post fue que aprendan a hacer una clase reutilizable para sus proyectos, en este caso fue la de conexion entre mysql y javafx pero puede ser de cualquier otra cosa. Y ahora si, prometo que en el proximo vemos como hacer todo pero con interfaz grafica

PD: nadie me dice ni siquiera “perro que buenos esta el tuto” o ni lo contrario

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.

67
Comenta!

avatar
Sebas
Sebas

Perro que bueno que esta el tuto, consejo…..mira un poquito JPA…te va a facilitar la vida en conexiones a base de datos…. lee un poco de ORM y vas a saber de lo que hablo… Saludos!!! y segui que esta muy bueno che…dale que quiero integrarlo con googlemaps!

Irene
Irene

Hola… muy bueno el tuto jajaja..de vdd ;-) … una duda… haciendo este tipo de conexion se podria consultar datos desde un celular? … o como tendria q hacerse?

Chuche
Chuche

Que buenos tutoriales has puesto, ya eh leído los que has puesto, espero con ansias los siguientes ^_^

Izack
Izack

Hola perro! Oye, un problema!!! Tengo el mismo codigo q tienes, pero el problema es q me inserta 2 veces los datos a la BD, la primera vez q lo compile me lo inserto como 9 veces, la segunda 12, y asi se fue hasta q llego a 2 nomas. Intente arreglar el codigo, incluso comente algunas variables q no utilizas, Pero aun asi me inserta 2 veces en la BD. Inserte desde la consola, y me inserta bien, solo una. El problema es desde la aplicacion, pero no se donde!!!!!!!!!!! :cry: Espero me puedas ayudar, a ti te funciona… Leer mas »

Izack
Izack

Hola! Tengo exactamente tu mismo codigo, solo modifique el password de mysql, y el nombre de mi tabla, el proyecto de Netbeans lo llame PruebaBD-FX. Ya he insertado desde la consola y no hay problema, cuanto ejecuto la aplicacion me aparece q inserto una fila, pero en realidad me pone 2. Esta muy raro el problema, todo esta bien. Nada mas en Database.fx tienes declarado una variable: public var rs: ResultSet; que en la funcion shutdown la cierras, pero en la funcion consultar utilizas otra( var rs: ResultSet=null; ). Creo q cierras una q ni siquiera utilizas, y la q… Leer mas »

Izack
Izack

Ok, Gracias,

Esperare la sig parte del tuto,

:)

Liz
Liz

:lol: esta muy padre tu tutorial :up: , me gusta lo sencillo y dinamico, :o me gustaria saver si has guardado en archivos con JavaFX….. saludos ;-)

Christian
Christian

consulta estoy tratando de realizar un formulario de alta de persona(por ejemplo) y no se como realizar lo o sea no se como realizar de una forma sencilla una tabla con sus respectivos textfield y label, para que de pues pueda tomar los datos de los textfield. me podrías orientar para realizar esto. desde ya muchas gracias.

Daniel Py
Daniel Py

En cuanto al Error de la Duplicacion de Insercion

Me pasaba lo mismo teniedo el campo ID como clave primaria de tipo INTEGER no AutoIncremental, asi que le pasaba el ID en la sentencia de Insercion y de tiraba el error, asi q decidi intentar cambiando el Campo a AutoIncremental y eliminando el valor para el ID nuevo en la sentencia de Insercion, y pues funciono como deberia..

Y de verdad es una pena que no puedas seguir con el Tutorial… :sad:

william
william

bueno, quisiera saber como puedo realizar herencia en javaFX.
es decir tomar datos obtenidos de cualquier evento, datos enteros (numero) y mandarlos a una clase no en javaFX sino en java normal. y en la clase de java almacenarlos en una función.

Xavi
Xavi

Buen Tutorial!

A ver si me animo y me paso a JavaFX (desde Java) para hacer una aplicación que reproduzca secuencias de video grabadas y que muestre video en tiempo real desde varias cámaras IP.

Es posible con esta tecnología?

Saludos.

Valedor
Valedor

Perro que bien estan tus tutoriales eh!!!!

Obelich

Hola Perro como estas horale que malo que dejes lo de los tutos para JavaFX yo tambien programo pero con PHP pero con otro Framework con CakePHP :) ya tengo por ahi una agenda funcionando donde trabajo y como base de datos uso PostgreSQL, pero bueno espero que si se sigan con estos tutos de JavaFX me parecieron sensacionales sale pues estamos en contacto :smile:

Obelich

Eso estaria muy bien o mas bien dicho eso estaria bien Perron :lol:

francisco
francisco

hola el tutorial esta muy bueno ,, por fa haga otro ejemplo con interfaz grafica ,,,

Shadonwk

Hola perro exelentes tutos apenas los voy descubriendo hace una hora mas o menos y ya los lei todos pero ya no encuentro mas partes? le seguiste? o sino pss contactame y yo le sigo va que va me gustaria retomar tus tutos…

Laura
Laura

Hola perro y Shadonwk: Te vuelvo a felicitar perro por los tutoriales, y pues ojala los pudieran seguir ya seas tu o Shadonwk. No se si me podrian dercir alguno de los dos, como puedo ejecutar la aplicacion hecha en javaFX y NetBeans, en otra maquina q no sea la q utilizo para programar, la vdd apenas estoi comenzando en esto de javaFX pero no se como hacer el proyecto portable se que me genera dentro de la carpeta dist el .jar y los archivos jnlp pero esos los ejecuto en otra maquina y no m da nada me bota,… Leer mas »

Laura
Laura

ooo por cierto ya le hee instalado la maquina virtual de java jdk1.6.0_17 y jre6 que son los q yo tengo espero me conetsten :wink:

CSStungfurher
CSStungfurher

Hey Perro.. :what: alguna idea de cómo conectar JavaFX con Google maps api¡? :-| … el googleMaps Api funciona con javascript alguna aportacion acerca d esto? :help:

Shadonwk

CSStungfurher necesariamente necesitas que sea JavaFX?? te puedo recomendar Flex es excelente y mas facil de manipular que Java FX puedes ver algunos ejemplos en: http://detodoconroberts.blogspot.com y si quires el codigo para los mapas te lo puedo pasar.. solo pidelo en el blog

CSStungfurher
CSStungfurher

No me caeria de perlas ver el código y aplicarlo :-D …….pero como soy algo Orgulloso del Soft libre me encantaría hacerlo rn FX pero no más para sacar el pedo como decimos en México lo hago en Flex :twisted:

Shadonwk

Flex es codigo libre, lo unico que te vende adobe es la licencia de su editor de Flex pero puedes conseguir una licencia gratuita date una vuelta por el blog y ve como obtenerla, o siempre quedan otros medios pero Adobe Flex es Libre!

CSStungfurher
CSStungfurher

:pirate: Chavo…… no encuentro lo que me interesa del googlemaps :vangry:

CSStungfurher
CSStungfurher

:mrgreen: Hola aún sin alguna idea para conectarlo a googlemaps javafx :cry: :-x

fredy de yacuiba

los tutoriales estan bien pero me gustaria que publiques mas ejemplos o pequeños proyectos. y que framework es mas indicado para javafx? espero obtener mi respuesta muy pronto.

Shadonwk

que ondas fredy el amigo perro ahora se dedica al php y a compartir los secretos de seo con nosotros jaja sin embargo te dejo mi pagina personal donde tengo tutoriales de Flex que es el lider para desarrollar RIA le gano a JavaFX :) en fin http://www.aprendiendoflex.com y para el que queria el mapa de google hoy se subio el ejemplo y el codigo fuente de dicho ejemplo saludos

ismael
ismael

hola ke buen aporte eh comenzado a usas java fx

espero sigas pronto con mas post de java fx

:up:

LordZero
LordZero

Flex no le ganará nunca a JFX por una simple razón, Flex no corre en todos los SO, en cambio Java si, además con el JavaFX Composer y Netbeans 6.8 hacer que un JFX en jar corra en otra maquina es juego de niños. Si quieres sigo con el tutorial, guau guau.