▷ Curso de JAVA: Cómo conectar JAVA con una Base de datos? (Forma básica)
Después de 11 capítulos de nuestro Curso de Java, hoy entramos en una nueva etapa de suma importancia para el desarrollo de aplicaciones útiles para nuestros clientes; y tiene que ver con enlazar y/o conectar nuestros programas con una Base de datos.
Curso de JAVA: Cómo conectar JAVA con una Base de datos? (Forma básica) |
En esta parte del curso que es la número 12, desarrollaremos los pasos para poder llevar a cabo el proceso de conexión de una aplicación hecha en Java, con una Base de datos en MySQL, lo que nos permitirá realizar acciones y/o procedimientos tales como almacenamiento, actualización, eliminación, y consulta de datos e información.
Explicación por Videotutorial:
Explicación por Foto-Tutorial:
*Primero que todo, lógicamente debemos de contar ya con una Base de datos previamente creada (si aún no la tienes o no sabes cómo crearla, puedes ver nuestro artículo: Cómo crear una Base de datos en MySQL, con phpMyAdmin y MySQL Workbench?).
*Procederemos a descargar la librería mysql-connector-java-5.1.16-bin.jar, esta nos servirá como driver para poder comunicar nuestra aplicación JAVA con MySQL Server; luego de haberla descargado, procederemos a copiarla y pegarla en la carpeta de nuestro proyecto:
*Nos ubicaremos en Netbeans IDE, y en nuestro proyecto localizamos la carpeta “Libraries” (Bibliotecas), la seleccionamos, damos clic derecho sobre la misma y escogemos la opción “Add JAR/Folder…”:
*Nos saldrá una nueva ventana, lo que tenemos que hacer es buscar a través de dicha ventana, el archivo “.jar” que descargamos con anterioridad; luego de ubicarlo lo seleccionamos y damos clic en el botón “Abrir”. Ahora si expandimos nuestra carpeta Libraries, observaremos que ya contamos con este archivo en nuestro proyecto:
*Ahora crearemos un nuevo paquete al cual le pondremos por nombre “Metodos” (si necesitas saber cómo crear un paquete, te será de mucha ayuda leer nuestro artículo: Curso de JAVA: Cómo hacer un proyecto, un paquete y un formulario?), y dentro de este paquete, crearemos una Clase la cual llamaremos “ConexionMySQL”:
*Procederemos a pegar el siguiente código dentro de la clase que hemos creado:
public String db = "bdcontactos"; public String url = "jdbc:mysql://localhost/"+db; public String user = "root"; public String pass = "123"; public Connection Conectar(){ Connection link = null; try{ Class.forName("org.gjt.mm.mysql.Driver"); link = DriverManager.getConnection(this.url, this.user, this.pass); }catch(Exception ex){ JOptionPane.showMessageDialog(null, ex); } return link; }
*Nos saldrán algunos errores en el código, lo cual se debe a que necesitamos importar ciertas librerías, para solucionar esto colocaremos fuera de la clase, más exactamente después de “package Metodos;” y antes de la línea “public class ConexionMySQL {“, el siguiente código:
import java.sql.*; import javax.swing.JOptionPane;
*Para mayor claridad y teniendo en cuenta todo lo anterior, nuestro código quedaría de la siguiente forma:
package Metodos; import java.sql.*; import javax.swing.JOptionPane; public class ConexionMySQL { public String db = "bdcontactos"; public String url = "jdbc:mysql://localhost/"+db; public String user = "root"; public String pass = "123"; public Connection Conectar(){ Connection link = null; try{ Class.forName("org.gjt.mm.mysql.Driver"); link = DriverManager.getConnection(this.url, this.user, this.pass); }catch(Exception ex){ JOptionPane.showMessageDialog(null, ex); } return link; } }
*En resumen, lo que hacemos en el código es crear variables que contendrán valores específicos, como la dirección del servidor, el usuario y la clave para acceder a la Base de datos, y el nombre de la misma; luego se crea un método con el cual obtendremos la conexión a nuestra BD; claro está, usando los datos que almacenamos en las variables y por supuesto el driver y/o la librería que descargamos. En el caso dado de que tengamos un problema; es decir, que no nos podamos conectar, se nos mostrará en una ventana, un mensaje donde se nos informa acerca de esta falla. Si quieres una explicación más detallada sobre cada línea del código anterior, no dudes en visitar: Código JAVA: Conectar nuestra aplicación con una Base de datos.
*Ahora haremos una prueba para verificar que si nos podemos conectar a nuestra base de datos, para esto nos iremos a nuestro formulario principal y daremos doble clic sobre un botón que vamos a agregar para hacer la prueba:
*Procedemos a borrar el comentario que hay en el método del botón por defecto:
*Pegaremos el siguiente código dentro de dicho método:
ConexionMySQL mysql = new ConexionMySQL(); java.sql.Connection cn= mysql.Conectar(); if(!cn.equals(null)){ JOptionPane.showMessageDialog(null, "Conectado"); try{ cn.close(); }catch(SQLException ex){ System.out.println("Error al desconectar "+ex); } }
*Nos saldrán algunos errores en el código, lo cual se debe a que necesitamos importar ciertas librerías, para solucionar esto procederemos a importarlas dando clic en el bombillito (ubicado en la barra de numeración) que sale con error al lado de nuestro código, y luego seleccionando las librerías necesarias:
*En el código lo que hacemos es instanciar un objeto de la clase ConexionMySQL; luego implementamos el método “Conectar” y almacenamos en una variable tipo Connection, la conexión establecida entre nuestra aplicación y la base de datos; ahora, verificamos a través de un condicional “if”, si la conexión es exitosa, en caso tal, se nos mostrará una ventana con el mensaje “Conectado”; luego se procede a desconectar nuestra aplicación de la base de datos, y en el caso de que haya un error a la hora de realizar la desconexión, se mostrará un mensaje por consola informándonos del error. Por último sólo nos resta ejecutar nuestro formulario principal y presionar el botón que realiza el test de conexión:
Con esto ya podremos llevar a cabo el desarrollo de aplicaciones que necesitan gestionar datos; es decir, guardarlos, modificarlos, etc.
Si deseas descargar el video, junto con el fascículo del presente tema del curso de JAVA, sólo debes dirigirte a nuestra Zona de Descargas, y dar clic sobre el icono "Curso de JAVA Parte 12".
Si deseas descargar el video, junto con el fascículo del presente tema del curso de JAVA, sólo debes dirigirte a nuestra Zona de Descargas, y dar clic sobre el icono "Curso de JAVA Parte 12".
Si te interesa ver la Parte 11 del Curso de JAVA, puedes dar clic en el siguiente enlace: Cómo cargar una imagen y/o foto en un JLabel de un formulario, utilizando JFileChooser?
Para tener acceso a todos los temas desarrollados hasta ahora en el presente curso, puedes ver todos los capítulos de "¿Cómo lo hago en JAVA?"
¿Quieres aprender a realizar aún más cosas y personalizar tus programas hechos en el lenguaje de programación JAVA?, si tu respuesta es "Sí", puedes acceder a todos los tips que hemos estado publicando en este blog, dando clic aquí.
Si te fue de gran ayuda este material, no olvides compartirlo con tus amigos.
Si te fue de gran ayuda este material, no olvides compartirlo con tus amigos.
Si tienes dudas o sugerencias al respecto; puedes dejarnos tus comentarios.
Bendiciones...
Teniendo en cuenta una muy buena observación y recomendación de uno de nuestros lectores; para optimizar el código en el método del botón, donde hacemos el test de conexión, en el condicional "if" se debe reemplazar la condición (!cn.equals(null)) por (cn!=null)
ResponderBorrarEs sintaxis, no esta mal escrito pero si quieres cambiarlo, puedes hacerlo.
BorrarSaludos estimado Andrés Vega, gracias por tu observación :) y es muy válida (de verdad que sí), aunque el término "condición" nos pareció el más adecuado en el momento; sin embargo, te agradecemos el apunte y lo tendremos en cuenta a la hora de los próximos artículos y comentarios :)
BorrarPARA TENER EN CUENTA:
ResponderBorrarLa línea de código que usamos dentro del método Conectar(), de la Clase ConexionMySQL():
Class.forName("org.gjt.mm.mysql.Driver");
Actualmente no es necesaria, así que la puedes obviar (eliminarla); sin embargo, si la dejas o la quitas el código seguirá funcionando.
Si leemos un poco la documentación de la clase DriverManager, encontraremos lo siguiente:
INGLÉS:
Applications no longer need to explicitly load JDBC drivers using Class.forName(). Existing programs which currently load JDBC drivers using Class.forName() will continue to work without modification.
When the method getConnection is called, the DriverManager will attempt to locate a suitable driver from amongst those loaded at initialization and those loaded explicitly using the same classloader as the current applet or application.
ESPAÑOL:
Las aplicaciones ya no necesitan cargar explícitamente controladores JDBC utilizando Class.forName (). Programas que actualmente cargan controladores JDBC utilizando Class.forName (existente) seguirá trabajando sin modificaciones.
Cuando el método getConnection se llama, el DriverManager intentará localizar un controlador adecuado de entre las que se cargan en la inicialización y las que se cargan de forma explícita utilizando el mismo cargador de clases que el applet o aplicación actual.
Para obtener la información completa puedes dirigirte a:
http://docs.oracle.com/javase/8/docs/api/java/sql/DriverManager.html
Amigo me gustaría saber si existe una manera de comunicar 2 formularios distintos uno en java y otro en php lo que quiero es llenar un formulario en java y esos datos mandarlos a otro formulario echo en php !! de antemano muchas gracias
ResponderBorrarOK gracias por compartir
ResponderBorrarSaludos estimado Isaac.
BorrarGracias a ti por seguir nuestro blog, no olvides compartirlo con tus amigos.
Recuerda que aquí encontrarás de todo un poco (Java, MySQL, Tecnología en general, etc...)
Bendiciones...
Gracias Excelente explicación
ResponderBorrarSaludos estimado Creation-Soft, nos alegra mucho el haberte ayudado con nuestro post explicativo para conectar aplicaciones JAVA con bases de datos en MySQL.
BorrarTe motivamos para que compartas nuestro blog en tus redes sociales y des a conocer entre tus amigos, las soluciones que aquí proponemos.
¡CRISTO ES TU SALVADOR!
Bendiciones...
como se haria para hacer lo mismo pero a una base de datos llamada tiendaropa.mdb
ResponderBorrarcomo hago la misma conexion pero sin el boton, osea que apenas inicie la aplicacion se haga la conexion automaticamente sin presionar nada.
ResponderBorrarSaludos estimado(a), sólo deberás usar las dos primeras líneas del código del botón "Probar Conexión", es decir:
BorrarConexionMySQL mysql = new ConexionMySQL();
java.sql.Connection cn= mysql.Conectar();
Y las implementarás dentro del Método Constructor o en su defecto, en el Método main de tu Clase Principal.
¡CRISTO TE AMA!
Bendiciones...
Y cual seria el Procedimiento, pero para Sql Server ?
ResponderBorrarSaludos
ey yo ise copi y pehcs por no se nada de java
ResponderBorrarbusca como aprender desgraciado igual ami
Borrar