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:
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:
- conectarse a la base de datos
- una consulta de insercion o modificacion
- una consulta de seleccion
- 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 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!
Se lo que es un ORM, pero JPA no, investigo :)
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?
Ha! muy buena pregunta Irene. Si la base de datos esta en internet si se puede usar, pero si lo que quieres es consultar una base de datos del mismo celular pues no.
Gracias por el comentario!!! :up:
Que buenos tutoriales has puesto, ya eh leído los que has puesto, espero con ansias los siguientes ^_^
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 »
bajaste el zip que subi? Tenes el mismo exacto codigo? A mi si me funciona perfecto. Lo que yo creo es que tienes las consultas INSERT donde van las de SELECT y viceversa.
Si sigue sin salirte bien podrias poner en el foro el codigo que tienes asi seguimos por ahi.
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 »
Y no, si hay alguien a quien no le salga no esta bueno :(
Bueno, calculo que esta semana estare publicando la parte 8 del tuto y hare que el codigo este mas optimizado…tenme paciencia :)
PD: Al igual que ustedes yo tambien estoy aprendiendo recien :penguin:
Ok, Gracias,
Esperare la sig parte del tuto,
:)
: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 ;-)
Si, he guardado archivos, pero la verdad no creo poder seguir con estos tutos pues he decidido dedicarme por completo a un solo lenguaje y ese ha sido PHP usando el framework KumbiaPHP.
Pero si alguien quiere seguir con los tutos me avisa y le creo una cuenta para que sea parte del blog y escriba sus tutoriales.
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.
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:
Si, la verdad que me gustaria, pero he decidido que no me sirve de mucho dedicarme a 2 lenguajes de programacion :(
pero ya hare un post solicitando gente que siga este tuto, seguro alguien va a aparecer :)
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.
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.
Perro que bien estan tus tutoriales eh!!!!
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:
Bueno ya me canse! Todo el mundo me dice que siga con estos tutos asi que me hare tiempo para seguirlos… :tux:
Eso estaria muy bien o mas bien dicho eso estaria bien Perron :lol:
hola el tutorial esta muy bueno ,, por fa haga otro ejemplo con interfaz grafica ,,,
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…
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 »
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:
Laura…que lindo tener comentarios de mujeres en el blog :)
La verdad ya hay otro que me ha presentado ese problema pero no lo he podido resolver, mis conocimientos sobre JavaFX son los que publique en el blog y nada mas.
Con respecto a seguir estos tutos he recibido 3 propuestas pero ninguno pasa a la accion :cry:
Tal vez cuando aprendas un poco mas los puedas seguir :wink:
jeje si acuerdate perro que yo era el del problema y por eso decidi cambiarme y lo mismo te recomiendo ati Laura java es muy bueno y robusto sin embargo en las cuestiones de diseño la verdad anda muy mal y pss ahi si se le adelanto y gano Adobe con Flex!! es practicamente lo mismo que JavaFX pero sin los problemas de este ademas con Flex solo necesitas tener instalado el plugin de Flash que la mayoria de las compus nuevas ya lo traen instalado por default en cambio para correr java tienes que bajarte e instalar la MV… Leer mas »
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:
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
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:
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!
:pirate: Chavo…… no encuentro lo que me interesa del googlemaps :vangry:
:mrgreen: Hola aún sin alguna idea para conectarlo a googlemaps javafx :cry: :-x
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.
Hola fredy. Si lees los comentarios de mas arriba notaras que lamentablemente ya no voy a continuar con los tutos de JavaFX. Aun estoy a la espera de alguien que se anime y me releve.
Saludos y gracias por visitar y comentar :)
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
hola ke buen aporte eh comenzado a usas java fx
espero sigas pronto con mas post de java fx
:up:
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.