3.- Conectando La Base De Datos




En esta sección se verá como establecer la conexión con una base de datos y que clases, objetos, métodos son requeridos para ésta operación.

Antes que todo, se debe señalar que los paquetes de clases involucrados dentro de una aplicación con éstas características son java.sql y javax.sql.

Lo primero que se debe realizar para poder conectarse a una base de datos es cargar el driver encargado de ésta función. Para ello es utilizada la llamada Class.forName.

Class.forName("DriverXYZ");

Donde DriverXYZ corresponde al driver a cargar, por ejemplo, el driver JDBC-ODBC es sun.jdbc.odbc.JdbcOdbcDriver; el driver JDBC-MySQL es com.mysql.jdbc.Driver.

Una vez cargado el driver es necesario crear un objeto del tipo Connection, para administrar la conexión. Una aplicación puede utilizar DriverManager para obtener un objeto de tipo conexión, Connection, con una base de datos. La conexión se especifica siguiendo una sintaxis basada en la especificación más amplia de los URL, de la forma:

jdbc:subprotocolo//servidor:puerto/base de datos

La siguiente línea de código ilustra ésta idea:

Connection con = DriverManager.getConnection(url, "myLogin", "myPassword");

Si uno de los drivers que hemos cargado reconoce la URL suministada por el método DriverManager.getConnection, dicho driver establecerá una conexión con el controlador de base de datos especificado en la URL del JDBC. La clase DriverManager , como su nombre indica, maneja todos los detalles del establecimiento de la conexión detrás de la escena. A menos que estemos escribiendo un driver, posiblemente nunca utilizaremos ningún método del interface Driver.

La conexión devuelta por el método DriverManager.getConnection es una conexión abierta que se puede utilizar para crear sentencias JDBC que pasen nuestras sentencias SQL al controlador de la base de datos.

El siguiente código establece una conexión a una base de datos ubicada en el servidor aragorn.elo.utfsm.cl. Esta base de datos usa MySQL, por eso se carga dicho driver (si este driver no se encuentra instalado, se debe y configurar la variable de entorno CLASSPATH con el siguiente comando export CLASSPATH=$HOME/directorio/ nombreconector.jar).

import java.sql.*;

public class TestConnection
{
   static String login = "antares";
   static String password = "";
   static String url = "jdbc:mysql://aragorn/arg_musiteca";

   public static void main(String[] args) throws Exception
   {
      Connection conn = null;

      try
      {
         Class.forName("com.mysql.jdbc.Driver").newInstance();

         conn = DriverManager.getConnection(url,login,password);

         if (conn != null)
         {
            System.out.println("Conexión a base de datos "+url+" ... Ok");
            conn.close();
         }
      }
      catch(SQLException ex)
      {
         System.out.println(ex);
      }
      catch(ClassNotFoundException ex)
      {
         System.out.println(ex);
      }

   }
}