Conexión de base
de datos: MySQL a
Java
ABIGAIL BOLÍVAR PÉREZ 301P
Creación de la clase
Primero tenemos que crear nuestro proyecto y las clases respectivas


-Descargamos el jar para la conexión.



-Agregamos el Jar a nuestro proyecto.

Habiendo realizado todo esto, ya tenemos preparado nuestro entorno para poder
realizar el código respectivo para nuestra conexión.
Código de la
Clase
"ConexionDB"


package ConexionDB;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;

public class ConexionDB {
public static Connection GetConnection()
{
Connection conexion=null;
try
{
Class.forName("com.mysql.jdbc.Driver");
String servidor = "jdbc:mysql://localhost/DBVentas";
String usuarioDB="root";
String passwordDB="030191";
conexion= DriverManager.getConnection(servidor,usuarioDB,passwordDB);
}


catch(ClassNotFoundException ex)
{
JOptionPane.showMessageDialog(null, ex, "Error1 en la
Conexión con la BD
"+ex.getMessage(), JOptionPane.ERROR_MESSAGE);
conexion=null;
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null, ex, "Error2 en la
Conexión con la BD
"+ex.getMessage(), JOptionPane.ERROR_MESSAGE);
conexion=null;
}
catch(Exception ex)




{

JOptionPane.showMessageDialog(null, ex, "Error3 en la Conexión
con la BD "+ex.getMessage(), JOptionPane.ERROR_MESSAGE);
conexion=null;
}
finally
{
return conexion;
}
}
}

Esta clase es la que realizará la conexión con la base de datos, como
se puede ver tenemos un método que retorna un tipo Connection el
cual se recuperará desde cualquier clase que desee acceder a este
método. De esta forma tenemos nuestra clase conexión accesible
desde cualquier capa que podamos crear sin la necesidad de
programarlo más de una vez. Recuerden cambiar el usuario y
contraseña por la que se tiene en su servidor de base de datos.
Código de la clase
"Main"


package ConexionDB;
import java.sql.Connection;
import javax.swing.JOptionPane;
/**
*
* @author Kevin Arnold
*/
public class Main {
public static void main(String[] args)
{
Connection miConexion;
miConexion=ConexionDB.GetConnection();
if(miConexion!=null)
{
JOptionPane.showMessageDialog(null, "Conexión Realizada
Correctamente");
}
}
}


Para este caso que es un ejemplo de sólo la conexión con la Base
de Datos, realizamos un simple main donde hacemos una llamada
a la clase "ConexionDB" y recuperamos el valor que retorna y si es
diferente a "null" eso indica que la conexión se realizó
correctamente.



Tener en cuenta que se debe manejar de una forma adecuada las
excepciones que podría darse en la conexión, como se puede ver
se maneja varios tipos de excepciones en la clase "ConexionDB".
Compilación del
programa


Realizado todo esto el programa debería compilar realizando la
conexión y lanzando un mensaje indicando que se realizó la
conexión correctamente o un mensaje donde indique si surgió
alguna excepción.



Si todo se realizó correctamente, el software debería correr de la
siguiente forma.

Como se puede ver, esto indica que la conexión se realizó
correctamente.
Conectar MySQL
con NetBeans
Obtener el driver


Como toda conexión a bases de datos en Java, necesitamos un
driver (también conocido como conector) para realizar la
comunicación con la base de datos, en este caso necesitaremos el
de MySQL, algo así como mysql-x-x-x.jar.
Crear el proyecto de NetBeans


Para crear el proyecto basta con dar clic en el botón de 'Nuevo
Proyecto' o ir al menú Archivo -> Nuevo Proyecto.



Al proyecto le titularemos MySQLBD, aunque solo es un nombre
sugerido ya que no afecta en lo más mínimo con el
comportamiento del programa. Una vez creado el proyecto el IDE
nos posicionará en la clase principal del mismo y creará por sí solo
el método main desde el cual ejecutaremos todos nuestros
procedimientos.
Establecer la conexión a la base
de datos


Lo primero que vamos a hacer es importar las clases y/o paquetes
que vamos a utilizar (los llamados import’s), en este caso solamente
será el que se muestra a continuación:



Posteriormente dentro de la clase declararemos una variable
privada de tipo Connection que será la que contendrá la conexión
con la base de datos:


Para organizar el código crearemos el get y set de conexion
además del método llamado conectar() el cual se encargará de
establecer a la conexión con la base de datos para que
posteriormente podamos realizar los procedimientos que
necesitamos. Dentro del método encerraremos la mayor parte del
código dentro de un try-catch con el fin de capturar las
excepciones que se puedan originar tras la ejecución del mismo.

Como puedes ver, el método devuelve una instancia de la clase
MySQLBD (es decir, la misma que lo contiene), esto con el fin de poder
encadenar los siguientes métodos que necesitaremos y ahorrarnos una
línea de código.


Ahora bien, dentro del try-catch lo primero que realizaremos será
cargar el driver en la memoria y posteriormente crear una cadena
con la URL de conexión a la base de datos como se muestra en el
siguiente código:



En la URL de la conexión debes tomar en cuenta que:



localhost indica el host o la IP del servidor Oracle.



test es la base de datos.



user es el usuario con el que te vas a conectar.



password es la contraseña.


En este momento lo único que nos falta para crear la conexión es
llamar al método getConnection() del driver de la siguiente
manera:



Puedes validar si la conexión se realizó correctamente verificando si
la variable es nula:


El método completo entonces quedaría de la siguiente manera:
Ejecutar sentencias en la base de
datos


Ya que hemos realizado la conexión a la base de datos podemos
trabajar con ella por lo cual crearemos un método a partir del cual
ejecutaremos las sentencias más comunes que no nos devuelven
resultados como INSERT, UPDATE, DELETE, etc.



Vamos a definir el método para que sea público y nos devuelva un
valor booleano, true si se ejecuta la consulta correctamente, false si
no. A su vez recibirá una cadena que contendrá la consulta SQL a
ejecutar.


Posteriormente, igual como lo hicimos en el método anterior, vamos
a encerrar prácticamente todo el comportamiento dentro de trycatch.



Ahora definimos un objeto tipo Statement que nos ayudará a
ejecutar la consulta de la siguiente manera:


Por último cerramos la sentencia para liberar recursos:



En el caso de que se presente una excepción daremos por hecho
que no se realizó la ejecución correctamente, por lo tanto, sólo en
ese caso retornaremos false.



El método completo luce de la siguiente manera:
Realizar consultas a la base de
datos


Lo único que nos falta es consultar a la base de datos (SELECT) lo
cual haremos igualmente mediante un método público que nos
devuelva un objeto de tipo ResultSet e igualmente recibirá una
cadena que contendrá una consulta SQL a realizar.


Lo primero que vamos a agregar es una declaración del objeto de
tipo ResultSet y posteriormente encerraremos la ejecución dentro
de un try-catch para capturar las excepciones que se puedan
generar.



De igual manera nos apoyaremos de un objeto de tipo Statement
para poder realizar la consulta.


Obtenemos el mapa de resultados a través del método
executeQuery() del objeto Statement y posteriormente llamamos al
método commit() de la conexión para asegurarnos que la consulta
se está realizando.



En el caso de que se presente una excepción daremos por hecho
que no se realizó la consulta correctamente, por lo tanto, sólo en
ese caso retornaremos null.El método completo se ve de la
siguiente manera:



Con esto tenemos completa nuestra clase que se encargará de
realizar la conexión, consulta y ejecución de sentencias en la base
de datos Oracle.
Probar el funcionamiento


Para verificar que todo funciona bien podemos crear una tabla en
la base de datos de nombre TEST con 2 campos, IDENTIFICADOR de
tipo INTEGER y DESCRIPCION de tipo VARCHAR y ejecutar lo
siguiente dentro del método main:

Conexión de Base de Datos

  • 1.
    Conexión de base dedatos: MySQL a Java ABIGAIL BOLÍVAR PÉREZ 301P
  • 2.
    Creación de laclase Primero tenemos que crear nuestro proyecto y las clases respectivas
  • 3.
     -Descargamos el jarpara la conexión.  -Agregamos el Jar a nuestro proyecto. Habiendo realizado todo esto, ya tenemos preparado nuestro entorno para poder realizar el código respectivo para nuestra conexión.
  • 4.
  • 5.
     package ConexionDB; import java.sql.Connection; importjava.sql.DriverManager; import java.sql.SQLException; import javax.swing.JOptionPane; public class ConexionDB { public static Connection GetConnection() { Connection conexion=null; try { Class.forName("com.mysql.jdbc.Driver"); String servidor = "jdbc:mysql://localhost/DBVentas"; String usuarioDB="root"; String passwordDB="030191"; conexion= DriverManager.getConnection(servidor,usuarioDB,passwordDB); }
  • 6.
     catch(ClassNotFoundException ex) { JOptionPane.showMessageDialog(null, ex,"Error1 en la Conexión con la BD "+ex.getMessage(), JOptionPane.ERROR_MESSAGE); conexion=null; } catch(SQLException ex) { JOptionPane.showMessageDialog(null, ex, "Error2 en la Conexión con la BD "+ex.getMessage(), JOptionPane.ERROR_MESSAGE); conexion=null; } catch(Exception ex)
  • 7.
      { JOptionPane.showMessageDialog(null, ex, "Error3en la Conexión con la BD "+ex.getMessage(), JOptionPane.ERROR_MESSAGE); conexion=null; } finally { return conexion; } } } Esta clase es la que realizará la conexión con la base de datos, como se puede ver tenemos un método que retorna un tipo Connection el cual se recuperará desde cualquier clase que desee acceder a este método. De esta forma tenemos nuestra clase conexión accesible desde cualquier capa que podamos crear sin la necesidad de programarlo más de una vez. Recuerden cambiar el usuario y contraseña por la que se tiene en su servidor de base de datos.
  • 8.
    Código de laclase "Main"
  • 9.
     package ConexionDB; import java.sql.Connection; importjavax.swing.JOptionPane; /** * * @author Kevin Arnold */ public class Main { public static void main(String[] args) { Connection miConexion; miConexion=ConexionDB.GetConnection(); if(miConexion!=null) { JOptionPane.showMessageDialog(null, "Conexión Realizada Correctamente"); } } }
  • 10.
     Para este casoque es un ejemplo de sólo la conexión con la Base de Datos, realizamos un simple main donde hacemos una llamada a la clase "ConexionDB" y recuperamos el valor que retorna y si es diferente a "null" eso indica que la conexión se realizó correctamente.  Tener en cuenta que se debe manejar de una forma adecuada las excepciones que podría darse en la conexión, como se puede ver se maneja varios tipos de excepciones en la clase "ConexionDB".
  • 11.
  • 12.
     Realizado todo estoel programa debería compilar realizando la conexión y lanzando un mensaje indicando que se realizó la conexión correctamente o un mensaje donde indique si surgió alguna excepción.  Si todo se realizó correctamente, el software debería correr de la siguiente forma. Como se puede ver, esto indica que la conexión se realizó correctamente.
  • 13.
  • 14.
    Obtener el driver  Comotoda conexión a bases de datos en Java, necesitamos un driver (también conocido como conector) para realizar la comunicación con la base de datos, en este caso necesitaremos el de MySQL, algo así como mysql-x-x-x.jar.
  • 15.
    Crear el proyectode NetBeans  Para crear el proyecto basta con dar clic en el botón de 'Nuevo Proyecto' o ir al menú Archivo -> Nuevo Proyecto.  Al proyecto le titularemos MySQLBD, aunque solo es un nombre sugerido ya que no afecta en lo más mínimo con el comportamiento del programa. Una vez creado el proyecto el IDE nos posicionará en la clase principal del mismo y creará por sí solo el método main desde el cual ejecutaremos todos nuestros procedimientos.
  • 16.
    Establecer la conexióna la base de datos  Lo primero que vamos a hacer es importar las clases y/o paquetes que vamos a utilizar (los llamados import’s), en este caso solamente será el que se muestra a continuación:  Posteriormente dentro de la clase declararemos una variable privada de tipo Connection que será la que contendrá la conexión con la base de datos:
  • 17.
     Para organizar elcódigo crearemos el get y set de conexion además del método llamado conectar() el cual se encargará de establecer a la conexión con la base de datos para que posteriormente podamos realizar los procedimientos que necesitamos. Dentro del método encerraremos la mayor parte del código dentro de un try-catch con el fin de capturar las excepciones que se puedan originar tras la ejecución del mismo. Como puedes ver, el método devuelve una instancia de la clase MySQLBD (es decir, la misma que lo contiene), esto con el fin de poder encadenar los siguientes métodos que necesitaremos y ahorrarnos una línea de código.
  • 18.
     Ahora bien, dentrodel try-catch lo primero que realizaremos será cargar el driver en la memoria y posteriormente crear una cadena con la URL de conexión a la base de datos como se muestra en el siguiente código:  En la URL de la conexión debes tomar en cuenta que:  localhost indica el host o la IP del servidor Oracle.  test es la base de datos.  user es el usuario con el que te vas a conectar.  password es la contraseña.
  • 19.
     En este momentolo único que nos falta para crear la conexión es llamar al método getConnection() del driver de la siguiente manera:  Puedes validar si la conexión se realizó correctamente verificando si la variable es nula:
  • 20.
     El método completoentonces quedaría de la siguiente manera:
  • 21.
    Ejecutar sentencias enla base de datos  Ya que hemos realizado la conexión a la base de datos podemos trabajar con ella por lo cual crearemos un método a partir del cual ejecutaremos las sentencias más comunes que no nos devuelven resultados como INSERT, UPDATE, DELETE, etc.  Vamos a definir el método para que sea público y nos devuelva un valor booleano, true si se ejecuta la consulta correctamente, false si no. A su vez recibirá una cadena que contendrá la consulta SQL a ejecutar.
  • 22.
     Posteriormente, igual comolo hicimos en el método anterior, vamos a encerrar prácticamente todo el comportamiento dentro de trycatch.  Ahora definimos un objeto tipo Statement que nos ayudará a ejecutar la consulta de la siguiente manera:
  • 23.
     Por último cerramosla sentencia para liberar recursos:  En el caso de que se presente una excepción daremos por hecho que no se realizó la ejecución correctamente, por lo tanto, sólo en ese caso retornaremos false.  El método completo luce de la siguiente manera:
  • 24.
    Realizar consultas ala base de datos  Lo único que nos falta es consultar a la base de datos (SELECT) lo cual haremos igualmente mediante un método público que nos devuelva un objeto de tipo ResultSet e igualmente recibirá una cadena que contendrá una consulta SQL a realizar.
  • 25.
     Lo primero quevamos a agregar es una declaración del objeto de tipo ResultSet y posteriormente encerraremos la ejecución dentro de un try-catch para capturar las excepciones que se puedan generar.  De igual manera nos apoyaremos de un objeto de tipo Statement para poder realizar la consulta.
  • 26.
     Obtenemos el mapade resultados a través del método executeQuery() del objeto Statement y posteriormente llamamos al método commit() de la conexión para asegurarnos que la consulta se está realizando.  En el caso de que se presente una excepción daremos por hecho que no se realizó la consulta correctamente, por lo tanto, sólo en ese caso retornaremos null.El método completo se ve de la siguiente manera:  Con esto tenemos completa nuestra clase que se encargará de realizar la conexión, consulta y ejecución de sentencias en la base de datos Oracle.
  • 27.
    Probar el funcionamiento  Paraverificar que todo funciona bien podemos crear una tabla en la base de datos de nombre TEST con 2 campos, IDENTIFICADOR de tipo INTEGER y DESCRIPCION de tipo VARCHAR y ejecutar lo siguiente dentro del método main: