conexión de base de datos

27
Conexión de base de datos: MySQL a Java ABIGAIL BOLÍVAR PÉREZ 301P

Upload: priscila-edith-gomez-rascon

Post on 26-Jul-2015

130 views

Category:

Documents


1 download

TRANSCRIPT

Conexión de base de datos: MySQL a JavaABIGAIL 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 try-catch.

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: