La conectividad a bases de datos es uno de los requisitos de toda aplicación que se precie. Debido a la gran diversidad de gestores de bases de datos y a la orientación multi-plataforma de java los detalles concretos de la conexión a la base de datos son un poco dificil de entender.
Para crear una conexión a una base de datos tenemos la estructura JDBC que está inspirada en ODBC. Lo primero que vamos a necesitar para establecer una conexion a una base de datos es obtener las clases de conexión del proveedor de bases de datos. Yo trabajo con MySql y Oracle me tendré que bajar los controladores propios de cada base de datos . Por un lado los de MySql y por otro los de [http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html|Oracle]]. Estos controladores son los que harán el trabajo sucio de conectar con nuestra base de datos dependiendo de cual sea.
El proceso es el siguiente:
Proceso a seguir:
jar -xvf nombre_del_archivo_jar_descargado_de_MySql.jar ) /*
* @author: juan josé ortilles
* @description : Utilidad para conectar a MySql
* @description : necesita el ddriver jdbc descargable de la web de MySql
* @creation-date: 19-07-2007
*/
import java.sql.*;
public class ConectorMySql {
Connection conn;
/* Clase que crea una conexion con una base de datos MySql.
* El constructor de la clase necesita la cadena de conexion, el usuario y la contraseña de la base de datos
* En ese momento abre la conexion
* A partir de ahi puedes hacer todas las consultas que quieras
* ¡RECUERDA CERRAR LA CONEXION AL TERMINAR DE TRABAJAR CON ELLA!
*/
public void ConectorMySql(String cadenaDeConexion, String usuario, String contrasena){
// lo primero es cargar el driver de la base de datos. En nuestro caso el que hemos descargado de MySql
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (Exception ex) {
// si hay un error se manipula aqui
System.err.println("Error, no se ha podido cargar el driver de la base de datos");
}
try{
/* creamos una cadena de conexion especificandole que es una jdbc, que el driver es mysql
* la ubicación de la base de datos (localhost o ip de la máquina) el usuario y la contraseña
*/
String url = "jdbc:mysql:" + cadenaDeConexion + "?user=" + usuario + "&password=" + contrasena;
/*
* ahora ya lo tenemos todo para crear la conexión
*/
conn = DriverManager.getConnection(url);
}catch(SQLException ex){
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}
}
/*
* Ya tengo la conexión abierta. ahora, desde cualquier otro método de la clase podría invocar a esta conexion
* mira como va [[http://en.juantxu.net/doku.php?id=java:utils:conectormysql|en este otro ejemplo]]
*/
}
Los pasos a seguir son los mismos.
/*
* @author: juan josé ortilles
* @description : Utilidad para conectar a Oracle
* @description : necesita el ddriver jdbc descargable de la web de Orale
* @creation-date: 13-08-2007
*/
import java.sql.*;
public class ConectaOracle{
static Connection cn;
public void conecta(){
String cadenaConexion = "jdbc:oracle:thin:@ip_de_la_maquina:Puerto_de_conexion:nombre_de_la_base";
try{
// otra manera de cargar el driver
DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
// driver@machineName:port:SID , userid, password
cn = DriverManager.getConnection(cadenaConexion, Usuario, Contraseña);
}catch(SQLException e){System.err.println(e.getMessage());
}
public ResultSet consulta(String sql){
ResultSet resultado = null;
try{
Statement stmt = cn.createStatement();
resultado = stmt.executeQuery(sql);
}catch(SQLException e){System.err.println(e.getMessage());}
return resultado;
}
public void desConecta(){
try{
cn.close();
}catch(SQLException e){System.err.println(e.getMessage());}
}
}