Cómo conectar Java con MySQL en Netbeans - CableNaranja

Cómo conectar #Java con #MySQL en Netbeans

¡Comparte nuestro contenido!

¡Haz clic para puntuar esta entrada!
(Votos: 15 Promedio: 4)

Una de las tareas más típicas de un desarrollador es conectar su aplicación con una base de datos. Por esa misma razón, en está ocasión vamos a aprender a conectar dos populares herramientas de desarrollo: el lenguaje de programación Java y el gestor de base de datos MySQL, y todo desde Netbeans ¡Manos a la obra!

Utilicemos el conector oficial de MySQL

Necesitamos un componente desarrollado por el equipo de MySQL llamado Connector/J, así que es hora de ir a su página oficial.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

Una vez ahí, en la opción Select Operating System elegimos Platform Independent y presionamos el botón Download en la opción que más nos convenga.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

En la siguiente página, nos pedirá iniciar sesión con una cuenta Oracle. No es necesario, en su lugar utilizaremos la opción No thanks, just start my download.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

Colocando nuestra descarga donde mejor nos convenga.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

Con el software de compresión de datos que tenga nuestro equipo, extraemos el contenido de la descarga.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

El archivo que nos importa es mysql-connector-java. Se trata de un archivo con extensión JAR, el número de versión puede variar.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

Configurar Netbeans es muy simple y fácil

Es momento de abrir Netbeans, la versión que usamos en este artículo es la 12.2 de ApacheEs momento de abandonar ese viejo y desactualizado Netbeans 8– Lo primero, es ir al menú Tools y seleccionar Libraries.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

En el Ant Library Manager, utilizamos el botón New Library que se encuentra en la parte inferior de la ventana.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

En la ventana de diálogo, establecemos el Library Name y presionamos el botón OK.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

A continuación, presionamos el botón Add JAR/Folder.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

Localizamos el archivo mysql-connector-java que descargamos al principio. Al encontrarlo lo seleccionamos y presionamos el botón Add JAR/Folder.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

Finalmente presionamos el botón OK para cerrar el Ant Library Manager.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

Creando el proyecto para conectarnos a MySQL

En el menú File, seleccionamos New Project.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

En la lista de categorías, seleccionamos Java with Ant y en la opción Projects elegimos Java Application. Al terminar, presionamos el botón Next.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

En la siguiente ventana, establecemos el Project Name, quitamos la marca a la opción Create main class y presionamos Finish.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

Una vez cargue el proyecto, presionamos el botón derecho del ratón sobre la carpeta Source Packages. Inmediatamente seleccionamos New y luego Java Package.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

En Package Name establecemos el nombre que llevará nuestro paquete y presionamos el botón Finish.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

Es hora de crear la clase para realizar la conexión

Sobre el paquete recién creado, presionamos el botón derecho del ratón. Seleccionamos New y luego Java Class.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

En Class Name, establecemos el nombre de la clase a Conectar, luego presionamos el botón Finish.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

Con nuestra clase creada, es hora de utilizar la librería. En la carpeta Libraries, presionamos el botón derecho del ratón y seleccionamos Add Library.

En Available Libraries, seleccionamos nuestra librería y presionamos el botón Add Library.

Es hora de escribir el código de nuestra clase. Primero, añadimos los import necesarios.

import java.sql.Connection;
import java.sql.DriverManager;

Ahora, declaramos dentro de la clase la constante URL que incluirá los siguientes valores:

public static final String URL = "jdbc:mysql://localhost:3306/pruebajava";

Como podemos observar, nos conectamos usando el nombre de dominio y puerto del servidor de base de datos. El último valor (pruebajava en nuestro ejemplo) es el nombre de la base de datos.

Ahora, añadimos el usuario y la clave (Recuerde no usar root en producción)

public static final String USER = "root";
public static final String CLAVE = "";

Ahora, creamos un método que regresa un valor de tipo Connection.

public Connection getConexion(){

Instanciamos el objeto Connection.

Connection con = null;

Después, dentro de un try, llamamos a la clase que maneja el Driver para la base de datos. También haremos la conexión pasando las tres constantes iniciales.

try{
   Class.forName("com.mysql.cj.jdbc.Driver");
   con = (Connection) DriverManager.getConnection(URL, USER, CLAVE);
}

En el catch, mostramos cualquier posible error de conexión

catch(Exception e){
   System.out.println("Error: " + e.getMessage());
}

Finalmente, devolvemos la variable de tipo Connection y cerramos el método.

   return con;
}

La clase completa luce así:

package conectar;

import java.sql.Connection;
import java.sql.DriverManager;

public class Conectar {
    public static final String URL = "jdbc:mysql://localhost:3306/pruebajava";
    public static final String USER = "root";
    public static final String CLAVE = "";
    
    public Connection getConexion(){
        Connection con = null;
        try{
            Class.forName("com.mysql.cj.jdbc.Driver");
            con = (Connection) DriverManager.getConnection(URL, USER, CLAVE);
        }catch(Exception e){
            System.out.println("Error: " + e.getMessage());
        }
        return con;
    }
}

Hagamos una prueba de conexión

Es momento de poner a prueba todo lo que hemos hecho. En el servidor de base de datos, creamos una base de datos con el mismo nombre que usamos en la clase Conectar.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

Para nuestra prueba estará vacía.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

De regreso en nuestro proyecto, presionamos el botón derecho del ratón sobre el paquete, seleccionamos New y luego JFrame Form.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

El Class Name será PruebaConectar, después presionamos el botón Finish.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

Una vez aparezca el formulario, vamos a la sección Palette (usualmente a la derecha de la pantalla) y en Swing Controls seleccionamos Button.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

Ponemos el botón en nuestro formulario, después de jugar un poco con sus propiedades, nos ha quedado como sigue:

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

Ahora, presionamos el botón derecho sobre nuestro botón. La opción seleccionada es Change Variable Name.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

El nombre de nuestra variable será btnAceptar, al terminar de escribir el nombre, usamos el botón OK.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

Le damos un doble click a nuestro botón para comenzar a editar su método ActionPerformed. Necesitamos instancias nuestra clase Conectar.

Conectar conecta = new Conectar();

Después, creamos una variable de tipo Connection que reciba la conexión creada por nuestro método getConexion de la clase Conectar.

Connection con = conecta.getConexion();

Finalmente, con un JOptionPane, mostramos un mensaje indicamos que hemos logrado la conexión.

JOptionPane.showMessageDialog(null, "Conexión establecida con éxito");

No olvidemos añadir los import al inicio de nuestra clase.

import java.sql.Connection;
import javax.swing.JOptionPane;

Ahora, presionamos el botón derecho del ratón sobre nuestro proyecto, la opción a elegir es Properties.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

En la sección Run, presionamos el botón Browse que está a un lado de Main Class.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

Entonces, seleccionamos nuestra clase PruebaConectar y presionamos el botón Select Main Class.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

De regreso a la ventana anterior, simplemente presionamos el botón OK.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

Con la tecla F6 podemos echar a andar nuestra aplicación. Si todo salió bien. Obtendremos el mensaje de confirmación al presionar el botón que hicimos dentro del formulario.

Cómo conectar #Java con #MySQL en Netbeans - CableNaranja

DESCARGA EL PROYECTO NETBEANS PARA PROBAR

¡Y eso es todo por ahora! ¿Te ha resultado? Déjanos saber en los comentarios aquí abajo, en nuestra cuenta de twitter @cablenaranja7 o en nuestra página de facebook.

¡Comparte nuestro contenido!

Entradas relacionadas

40 comentarios en "Cómo conectar #Java con #MySQL en Netbeans"

  1. Hola Xamus, gracias por el contenido me ha servido mucho despues de revisar varios tutoriales. sin embargo me quedo colgada en como queda el codigo del Boton ya que esta por partes y no se donde colocar lo que indicas para hacer la llamada a la conexion. Que posiblidades hay de que muestres el codigo en una captura (del Boton “conectar a DB”). Descargue el ejemplo pero ahi no logro verlo, soy nueva en esto, muchas gracias.

    1. Saludos Jacky.

      Si le das doble click al botón “Conectar a DB” te debe crear el método actionPerformed, ahí dentro es donde debe colocar estas líneas de código


      Conectar conecta = new Conectar();
      Connection con = conecta.getConexion();
      JOptionPane.showMessageDialog(null, "Conexión establecida con éxito");

      Espero te sirva.

        1. Si funciona solo agregas: el usuario por ejemplo: puerto “”,usuario “root” ,password=”admin”
          por defecto, al menos que lo hayas cambiado los valores

      1. segui paso a paso tus instrucciones y me funciono a la perfeccion! solo tengo una duda, en caso que hubiese un error a la base de datos o que no se pudiera conectar a la bd, al momento de dar click en el boton, como puede darme un mensaje de ” error al conectar a bd”

        ejemplo:

        Conectar conecta = new Conectar();

        JOptionPane.showMessageDialog(null, “Conexión establecida con éxito”);

        y aqui abajo que valores tendria que poner para establecer un dialogo que diga mas o menos lo siguiente.

        System.out.println(“No se ha podido carcar a la Base de Datos”+e.getMessage());

        Perdon! ojala me de a entender jejeje

  2. Hola Xamus, gracias por el tutorial , muy ilustrativo, una pregunta, como hago para que en el JOPanel.swhoMessage(); salga es el mensaje real del estado de la conexión, porque imprime el mensaje que le coloque ahí, no importa si se conecta o no. El mensaje del estado real de la conexion esta en la clase getConexion();

    1. Saludos Nairo.

      Puedes usar un try – catch con la clase SQLException que tiene el método getMessage() con el mensaje real. También puedes usar la misma clase Connection que si mal no recuerdo tiene un método similar.

  3. gracias! estaba perdido por que hace años que no usaba netbeans y estoy utilizando ahora la versión 12 y si cambia al estar revisando los tutoriales.

  4. estoy intentando descargar mysql pero al momento de instalar me sale un Connecto/net y me sale que no lo puedo descargar y me sale error en todo no me puedo conectar

  5. Saludos, hice las pruebas, pero, sale una conexión… “exitosa” colocando información erronea de la bdd, descargué el archivo que subió, pero me sale errores, uno de ellos, me dice que no estoy usando la versión: illegal Source Level: JDK 15, según mi netbeans, tiene la JDK: 8, gracias

    1. Saludos Geovanny. En el caso del ejemplo todo lo que tienes que hacer es modificar la ruta del JDK hacia aquel que tengas instalado.

      En cuanto a las pruebas que mencionas, dentro del botón coloca un try – catch que te permita saber si algo ha salido mal, por ejemplo:

      try{
      Conectar conecta = new Conectar();
      Connection con = conecta.getConexion();
      JOptionPane.showMessageDialog(null, "Conexión establecida con éxito");
      }catch(IOException e){
      JOptionPane.showMessageDialog(null, e.getMessage());
      }

  6. Soy una estudiante de sistemas y el tener clases de forma casi autodidacta es difícil, pero tus instrucciones lo hicieron algo exageradamente fácil de entender y hacer, espero que sigan existiendo personas como tu, que explican con peras y manzanas.
    Saludos

  7. Soy estudiante y tengo la versión 13 de apache y me sale error en el código del botón no reconoce la última línea de código a pesar de que me corrijie la librería y me sigue marcando en rojo, ¿que puede ser ?

    1. Saludos Alexander.

      La última línea de código del botón es esta:

      JOptionPane.showMessageDialog(null, "Conexión establecida con éxito");

      ¿Tiene el mensaje de la salida del compilador? Así podría ver que es…

  8. Muy buenas noches tengo este código en netbeans
    /*
    * To change this license header, choose License Headers in Project Properties.
    * To change this template file, choose Tools | Templates
    * and open the template in the editor.
    */
    package eMpresa;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.util.logging.Level;
    import java.util.logging.Logger;

    /**
    *
    * @author HALC
    */
    public class empresa extends javax.swing.JFrame {
    private static Connection con;
    private static final String driver=”com.mysql.cj.jdbc.Driver”;
    private static final String user=”root”;
    private static final String pass=” “;
    private static final String url=”jdbc:mysql://localhost:3306/empleados”;
    public void Conector() throws SQLException{
    con=null;
    try{
    Class.forName(driver);
    con=DriverManager.getConnection(url, user, pass);
    if(con!=null){
    jLabel1.setText(“Conexión Establecida”);
    }
    }
    catch(ClassNotFoundException|SQLException e){
    jLabel1.setText(“La conexion no se establecio ” + e);
    }
    }
    /**
    * Creates new form empresa
    */
    public empresa() {
    initComponents();
    }

    /**
    * This method is called from within the constructor to initialize the form.
    * WARNING: Do NOT modify this code. The content of this method is always
    * regenerated by the Form Editor.
    */
    @SuppressWarnings(“unchecked”)
    //
    private void initComponents() {

    jButton1 = new javax.swing.JButton();
    jLabel1 = new javax.swing.JLabel();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    jButton1.setText(“Conectar”);
    jButton1.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jButton1ActionPerformed(evt);
    }
    });

    jLabel1.setText(“Estado: “);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addGap(25, 25, 25)
    .addComponent(jButton1)
    .addGap(18, 18, 18)
    .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 270, Short.MAX_VALUE)
    .addContainerGap())
    );
    layout.setVerticalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addGap(19, 19, 19)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(jButton1)
    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addContainerGap(248, Short.MAX_VALUE))
    );

    pack();
    }//

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    try {
    Conector();
    } catch (SQLException ex) {
    Logger.getLogger(empresa.class.getName()).log(Level.SEVERE, null, ex);
    }
    }

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
    /* Set the Nimbus look and feel */
    //
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
    * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
    */
    try {
    for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
    if (“Nimbus”.equals(info.getName())) {
    javax.swing.UIManager.setLookAndFeel(info.getClassName());
    break;
    }
    }
    } catch (ClassNotFoundException ex) {
    java.util.logging.Logger.getLogger(empresa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
    java.util.logging.Logger.getLogger(empresa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
    java.util.logging.Logger.getLogger(empresa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
    java.util.logging.Logger.getLogger(empresa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }
    //

    /* Create and display the form */
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new empresa().setVisible(true);
    }
    });
    }

    // Variables declaration – do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    // End of variables declaration
    }
    estoy utilizando xampp
    hago todo lo que dice aquí,
    pero la conexión no se establecio java.sql.SQLException:Access denied for user ‘root’ @ ‘localhost’ (Using password=YES;
    ahora pregunto ¿hace falta algo para que funcione? cmd, path o que cambio mas; por favor le agradezco su colaboración

    1. Parece que es esta línea:

      private static final String pass=” “;

      El usuario root no tiene contraseña, por ende no debe haber un espacio entre las comillas, es decir:

      private static final String pass=”“;

      De igual manera, recuerda por favor no usar root para un proyecto real.

      1. Cordial saludo Xamus:

        Muy buenas tardes, muchas gracias por la ayuda, un mes preguntándole al señor que esta dando el curso por youtube y nunca me dijo nada, quedo inmensamente agradecido, que tenga un resto de día excelente, muchos éxitos.

  9. Hola, tengo copiado el mismo código que tu incluso pille la misma versión de conector, pero me sale esto, sabes xk no consigo realizar la conexión, llevo ya varios días así.

    Error: class com.mysql.cj.jdbc.ConnectionImpl cannot be cast to class com.sun.jdi.connect.spi.Connection (com.mysql.cj.jdbc.ConnectionImpl is in unnamed module of loader ‘app’; com.sun.jdi.connect.spi.Connection is in module jdk.jdi of loader ‘app’)

    1. Saludos Morenu:

      El mensaje “com.mysql.cj.jdbc.ConnectionImpl is in unnamed module of loader ‘app’;” parece indicar que el conector no esta funcionando correctamente. Revisa si hiciste correctamente los primeros pasos, especilamente la parte donde se añade la librería del conector.

    1. Esta línea:
      Conectar conecta = new Conectar();
      Sácala del botón de conexión y ponla al principio de la clase PruebaConectar

      Luego en el botón para desconectar escribes:


      con.close(); // Cierra la conexión
      con = null; // Destruye el objeto de la memoria

      Prueba y me dices.

  10. Perfecto, muy bien explicado y muy claro todo, así da gusto.
    He conectado a la primera.
    Muchas gracias por tu tutorial ha sido de gran ayuda.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *