
Curso de Java
Desde cero hasta conexiones con bases de datos MySQL
Curso de Java: Contenido
Aplicación: página 5
[ 2, 3, 4, 5, 6, 7, 8 ]
Aplicación de ejemplo
Aplicación de ejemplo
Conexión
Para conectarse a cualquier servidor de base de datos hace falta una aplicación que sirva como enlace. A ese tipo de clases se les llama conectores. En el caso de MySQL, debe descargarse de su sitio web. En dicha descarga, se obtiene todo el código fuente de las clases necesarias pero sólo se requiere el archivo mysql-connector-java.jar. Este archivo debe ponerse en la siguiente ruta:
[JAVA-HOME]\jre\lib\ext
Hecho lo cual, estamos listos para escribir el siguiente código:
Conector.java package visorconsultas.controlador; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Conector { Connection conexion; String error; /*Creamos un constructor que recibe cuatro parámetros: *El nombre del servidor MySQL, el del usuario, la contraseña, y *la base de datos*/ public Conector(String host, String usuario, String pw, String base) { try { /*Esta línea crea una asociación entre nuestra aplicación * y la clase Driver que está empaquetada en el jar de conexión.*/ Class.forName("com.mysql.jdbc.Driver"); /*La conexón se obtiene con una cadena que usa *los parámetros que recibe el constructor*/ conexion=DriverManager.getConnection("jdbc:mysql://"+host+"/"+base,usuario,pw); } catch(ClassNotFoundException e){//Sucede si no se encuentra el driver error=e.getMessage(); } catch(SQLException e){//Sucede si la conexión falla error=e.getMessage(); } } //Este método devuelve la conexión public Connection getConexion(){ return conexion; } public void cierraConexion(){ try { conexion.close(); } catch (Exception ex) { } } //Este método devuelve el error que impide la conexión public String getMensajeError(){ return error; } }
El código anterior trata de obtener una conexión a MySQL usando las clases Class, Connection, DriverManager, ClassNotFoundException y SQLException; el mecanismo es como sigue:
1. Con el método forname() de Class, se crea una asociación entre nuestra clase Conector y el driver de conexión MySQL. Si no lo logra, el error es capturado con la ClassNotFoundException
2. La conexión se realiza con el método getConnection() de DriverManager; si el servidor no está disponible o refuta la solicitud, la conexión no se consuma y se dispara la SQLException
3. El método dameConexion(), es el que se encargará de poner a disposición la conexión para las clases que la requieran; mientras que cierraConexión() la cancela. La ejecución de los objetos de la librería sql exigen ser ejecutados dentro de un bloque try…catch, por eso está así la única línea que necesaria para el terminar la conexión.
4. Por supuesto, se debe tener acceso a una base de datos de un servidor MySQL mediante un nombre de usuario y una contraseña. Estos cuatro datos: base, servidor, usuario y password, los recibe como parámetro el constructor y luego los usa el método getConnetion() de la clase DriverManager.