package conexion; import java.sql.*; import javax.swing.*; /** * Esta clase deberia poderse conectar con cualquier base de datos. * Existen precargados varios url's y controladores para tres bases de datos: * <code>Sybase</code>,<code>Oracle</code>,<code>MySQL</code>.</br></br> * * <i>Ejemplo:</i></br> * <ol>Conexion con =new Conexion(Conexion.URL_BASADEDATOS_SYBASE_JDBC,<ol>Conexion.CONTROLADOR_SY BASE_JDBC);</ol></ol> * </br> * * * */ public class Conexion { //controladores JDBC � JODBC Y URL's de la base de datos Sybase public static final String CONTROLADOR_SYBASE_JDBC="com.sybase.jdbc2.jdbc.SybDriver"; public static final String CONTROLADOR_SYBASE_JODBC="ianywhere.ml.jdbcodbc.IDriver"; public static final String URL_BASEDEDATOS_SYBASE_JDBC="jdbc:sybase:Tds:localhost:2638"; public static final String URL_BASEDEDATOS_SYBASE_JODBC="jdbc:odbc:driver=Adaptive Server Anywhere 9.0;uid=dba;pwd=sql"; //controladores JDBC � JODBC Y URL's de la base de datos MySQL public static final String CONTROLADOR_MySQL_JDBC="com.mysql.jdbc.Driver"; public static final String URL_BASEDEDATOS_MySQL_JDBC="jdbc:mysql://localhost/menagerie?user=root&pa ssword=DBA"; //controlador JDBC � JODBC Y URL's de la base de datos Oracle public static final String URL_BASEDEDATOS_ORACLE_JDBC="jdbc:oracle:thin:system/system@//localhost:1 521/xe"; public static final String CONTROLADOR_ORACLE_JDBC="oracle.jdbc.OracleDriver"; //variables locales private final String URL; private final String CONTROLADOR; private String url_parte_uno="jdbc:oracle:thin:"; private String url_parte_dos="@//localhost:1521/"; //declarar objeto Connection para conectar a la base de datos private Connection conexion; public Conexion(){ URL=URL_BASEDEDATOS_ORACLE_JDBC; CONTROLADOR=CONTROLADOR_ORACLE_JDBC; } public Conexion(String url, String controlador){ URL=url; CONTROLADOR=controlador; } public Conexion(String usuario, String contrasenia, String orcl){ URL=url_parte_uno+usuario+"/"+contrasenia+url_parte_dos+orcl; CONTROLADOR=CONTROLADOR_ORACLE_JDBC; } public Connection abrirConexion(){ //conectarse a la base de datos try{ /*//cargar clase de controlador de base de datos Class.forName(CONTROLADOR); //establecer coneccion a la base de datos conexion= DriverManager.getConnection(URL); return conexion;*/ Class.forName("oracle.jdbc.driver.OracleDriver"); conexion = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:XE", "rabanne", "rabanne"); return(conexion); }//fin del bloque try //detectar posibles problemas al interactuar con la base de datos catch(SQLException exceptionSql){ JOptionPane.showMessageDialog(null, exceptionSql.getMessage(), "Error en la base de datos", JOptionPane.ERROR_MESSAGE); return null; } //detectar posibles problemas al cargar el controlador de la base de datos catch(ClassNotFoundException claseNoEncontrada){ JOptionPane.showMessageDialog(null, claseNoEncontrada.getMessage(), "No se econtro el controlador", JOptionPane.ERROR_MESSAGE); return null; } //detectar errores desconocidos catch(Exception e){ JOptionPane.showMessageDialog(null, "El mensaje de error es: "+e.getMessage(), "Error desconocido al abrir conexion", JOptionPane.ERROR_MESSAGE); return null; } }//fin del metodo abrirConexion public void cerrarConexion(){ // Asegurar que conexion se cierre correctamente try { conexion.close(); } // manejar posibles excepciones al cerrar conexion catch (SQLException exceptionSql) { JOptionPane.showMessageDialog(null, exceptionSql.getMessage(), "Error al cerrar la conexion", JOptionPane.ERROR_MESSAGE); } //errores desconocidos al cerrar la conexion catch (Exception e) { JOptionPane.showMessageDialog(null, "La instancia de la conexion es: "+conexion+"\n"+ "El mensaje de error es: "+e.getMessage(), "Error al cerrar la conexion", JOptionPane.ERROR_MESSAGE); } }//fin del metodo cerrarConexion }// fin de la clase Conexion