Mysql en Java parte 1

Una de las tareas más difíciles al momento de comenzar a trabajar con Java es cuando nos topamos con las bases de datos. En esta oportunidad les enseñaremos paso a paso la creación de una clase de conexión que nos permitirá el uso de Mysql.

En este tutorial aprenderemos a conectar y desconectarnos de nuestro servidor de base de datos.

  • Los datos necesarios para establecer una conexión cualquiera son:

url =  ruta de nuestro servidor.
dbName = nombre de la base de datos que utilizaremos.
driver = el nombre de la librería que  utilizaremos para establecer la conexión.
userName = Usuario con privilegios.
password = Contraseña del usuario con privilegios.

  • Comenzaremos creando una clase Conexión, la cual contendrá todos los métodos y atributos  necesarios para poder trabajar con nuestra base de datos. El primer paso sera declarar los atributos:
package qualityinfosolutions;

import java.sql.*; //Agregamos la librería

 public class Conexion {

  private Connection conn; // Connection es la interfaz necesaria para establecer la conexión
  private String url;
  private String dbName;
  private String driver;
  private String userName;
  private String password;

 }

}

Para que funcione correctamente todo necesitamos agregar a nuestro proyecto el driver «Driver MySQL JDBC» en la carpeta lib. Podemos obtener este driver fácilmente desde el siguiente link Driver MySQL, en el caso que utilicen algún IDE de desarrollo como Netbeans solo deben agregar la librería haciendo clic derecho en Bibliotecas->Agregar biblioteca  y buscar el driver.

 

  •  Crearemos 2 constructores uno con los datos por defecto y otro que permita que nos envíen los datos de conexión.
public Conexion() {

  this.conn = null; //dejamos este valor nulo solo para darle un valor inicial luego lo utilizaremos.
  this.url = "jdbc:mysql://localhost:3306/"; //localhost puede ser reemplazado por su ip ejemplo 192.168.0.2 o donde s  e encuentre su servidor de base de datos.
  this.dbName = "quality_info_solutions";
  this.driver = "com.mysql.jdbc.Driver"; //Nombre de la librería que  agregamos al proyecto anteriormente
  this.userName = "root";
  this.password = "1234";

}

public Conexion(String url, String dbName, String driver, String userName, String password) {

  //Solicitamos los datos de conexión necesarios e instanciamos los atributos
  this.conn = null;
  this.url = url;
  this.dbName = dbName;
  this.driver = driver;
  this.userName = userName;
  this.password = password;
}
  • Por último los métodos de conexión y desconexión a nuestra base de datos.
public boolean conectar() {

  boolean conectado = false;

  try {

    Class.forName(this.driver).newInstance(); //Establece el driver utilizado
    this.conn = DriverManager.getConnection(this.url + this.dbName, this.userName, this.password);//Establece la Conexión
    conectado = true;

    }catch (SQLException e) {
      System.out.println("Error de MySQL: " + e.getMessage()); //Imprimimos si el error es generado por la base de datos  }catch (Exception e) {
      System.out.println("Error inesperado: " + e.getMessage());//Imprimimos cualquier otro error que pueda ocurrir
  }
  return conectado;
}

public boolean desconectar() {

  boolean conectado = false;

  try {

    this.conn.close(); //termina la conexión con la base de datos
    conectado = true;

  }catch (SQLException e) {
    System.out.println("Error de MySQL: " + e.getMessage());
  }catch (Exception e) {
    System.out.println("Error inesperado: " + e.getMessage());
  }
  return conectado;

}
  • Podemos revisar el funcionamiento de nuestra clase desde la clase principal. 
package qualityinfosolutions;

  public class BaseDatosApp {

    public static void main(String[] args) {

    String url;
    String dbName;
    String driver;
    String userName;
    String password;

    //Prueba sin enviar parametros
    Conexion conn = new Conexion();

    //Imprimimos los resultados    
    System.out.println("Estado Conexión : " + conn.conectar());
    System.out.println("Estado Desconexión : " + conn.desconectar());

    //Prueba conexión enviando parametros

    url = "jdbc:mysql://localhost:3306/";
    dbName = "quality_info_solutions";
    driver = "com.mysql.jdbc.Driver";
    userName = "root";
    password = "1234";

    Conexion conn2 = new Conexion(url, dbName, driver, userName, password);//Enviamos los datos necesarios al segundo constructor

    //Imprimimos los resultados
    System.out.println("Estado Conexión : " + conn.conectar());
    System.out.println("Estado Desconexión : " + conn.desconectar());
   }
}

 

Clase Conexión completa

package qualityinfosolutions;

import java.sql.*;

  public class Conexion {

  private Connection conn;
  private String url;
  private String dbName;
  private String driver;
  private String userName;
  private String password;

  public Conexion() {

    this.conn = null;
    this.url = "jdbc:mysql://localhost:3306/";
    this.dbName = "quality_info_solutions";
    this.driver = "com.mysql.jdbc.Driver";
    this.userName = "root";
    this.password = "1234";

  }

  public Conexion(String url, String dbName, String driver, String userName, String password) {
    this.conn = null;
    this.url = url;
    this.dbName = dbName;
    this.driver = driver;
    this.userName = userName;
    this.password = password;
  }

  public boolean conectar() {

    boolean conectado = false;

    try {

      Class.forName(this.driver).newInstance();
      this.conn = DriverManager.getConnection(this.url + this.dbName, this.userName, this.password);
      conectado = true;

    }catch (SQLException e) {
      System.out.println("Error de MySQL: " + e.getMessage());
    }catch (Exception e) {
      System.out.println("Error inesperado: " + e.getMessage());
    }
    return conectado;
  }

  public boolean desconectar() {

    boolean conectado = false;

    try {

      this.conn.close();
      conectado = true;

    }catch (SQLException e) {
      System.out.println("Error de MySQL: " + e.getMessage());
    }catch (Exception e) {
      System.out.println("Error inesperado: " + e.getMessage());
    }
    return conectado;

  }
}

 

El resultado será:

Estado Conexión : true
Estado Desconexión : true

Estado Conexión : true
Estado Desconexión : true

Lo cual indica que esta todo correctamente funcionando.

En  la próxima oportunidad aprendemos a utilizar métodos para realizar las consultas básicas.

Saludos

También te podría gustar...

2 Respuestas

  1. kirito dice:

    Hola, donde encuentro los métodos para realizar las consultas básicas?.