“PROGRAMACIÓN WEB Y ACCESO A DATOS”
CONEXIÓN DE BD
ISC “8vo semestre”
CONEXIÓN DE BASE DE DATOS CON DISTINTOS GBD:
JDBC es la interfaz que proporciona Java para la conexión a bases de datos. Son un conjunto de clases e interfaces que permiten a Java ejecutar consultas y ordenes en una base de datos.
Para usar un controlador de JDBC, antes deberemos registrarlo en el DriverManager de JDBC. Esto se realiza habitualmente cargando la clase del controlador mediante el método forName de la clase Class. La construcción habitual es:
try
{
Class.forName(“org.postgresql.Driver”);
}
catch(ClassNotFoundException e)
{
....
}
Los controladores JDBC para identificar una conexión concreta a una base de datos utilizan un formato de dirección de tipo URL (Universal Resource Locator). Esta dirección suele ser de la forma: jdbc:controlador:basededatos.
Algunos de los formatos más usados son:
Podemos observar que PostgreSQL especifica la dirección IP del servidor, así como el puerto (5432) y el nombre de la BD.
Oracle, por otro lado, especifica un sub-controlador (oci8) y un nombre de BD que sigue los definidos por Oracle TNS. Podemos ver en los ejemplos de direcciones de conexión que, a pesar de ser diferentes, todas siguen un patrón muy similar (especialmente PostgreSQL, MySQL y SAP DB).
CONEXIÓN DE JAVA CON ORACLE
Para poder conectar a Java con ORACLE lo primero que necesitamos es la implementación de JDBC para ORACLE. Esta implementación se encuentra en el archivo Classes12.jar que podemos encontrar en el siguiente directorio del servidor de Oracle.
%ORACLE_HOME%\jdbc\lib
ORACLE_HOME es una variable de entorno que se crea durante la instalación del servidor ORACLE, y que indica donde está instalado físicamente ORACLE dentro del sistema de archivos, normalmente C:\oracle\ora92 para servidores Windows y ORACLE 9i. Esta misma nomenclatura se aplica al hablar de la instalación cliente.
Debemos configurar correctamente nuestra variable CLASSPATH para incluir en ella el archivo Classes12.jar.
Oracle proporciona los siguientes drivers en su implementación JDBC:
JDBC Thin Driver: No requiere de la instalación cliente de ORACLE. Ideal para Applets.
JDBC OCI: API nativa de ORACLE, para aplicaciones J2EE.
JDBC KPRB driver: (default connection) para Java Stored Procedures y Database JSP's.
Todos los drivers soportan la misma sintaxis y funcionalidad, por lo que nuestro código variará únicamente en la forma de crear la conexión.
Conectar a ORACLE con JDBC Thin Driver
El driver JDBC Thin se conecta y comunica con ORACLE a nivel de sockets. Proporciona su propia versión del protocolo Net8 (SQL*Net) sobre TCP/IP, por lo que no es necesario que exista una instalación de la parte cliente de ORACLE. Dado que este driver es código 100% Java es completamente independiente de la plataforma de ejecución, y como implementa su propia versión del protocolo es ideal para aplicaciones que se ejecutan sobre un navegador Web (applets)
CONEXIÓN A BD CON MySQL
Codificar el programa que consulte dichos datos
import java.sql.*; public class Programa { public static void main(String args[]){ try { // Para cargar la clase de controlador de base de datos se hace lo siguiente:Class.forName("com.mysql.jdbc.Driver"); //Para crear el objeto de conexión a la BD: Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/ejemplo?user=root&password="); //Crear objeto Statement para realizar consultas a la BD Statement instruccion = conexion.createStatement(); //Un objeto ResultSet, almacena los datos de resultados de una consulta ResultSet tabla = instruccion.executeQuery("SELECT cod , nombre FROM datos"); System.out.println("Codigo\tNombre"); while(tabla.next()) System.out.println(tabla.getInt(1)+"\t"+tabla.getString(2)); } catch(ClassNotFoundException e){ System.out.println(e); } catch(SQLException e){ System.out.println(e); } catch(Exception e){ System.out.println(e); } } } | |
Para el programa anterior es necesario conocer las siguientes funciones:
- Class.forName(“com.mysql.jdbc.Driver”); Con esta instrucción cargamos el driver de conexión a la BD en MySQL.
- DriverManager.getConnection Luego de cargar el Driver, es necesario crear la conexión a la base de datos. Para ello usamos el método getConnection de la clase DriverManager (que implementa la clase Driver). A dicho método le pasamos como parámetro una URL de conexión a la base de datos, que se compone, por lo general, de tres partes separados por “:”, jdbc:nombre_dbms:datos_de_conexion. Aunque esto depende del tipo de DMBS y conector que usemos.
- conexion.createStatement(); este método crea/devuelve un objeto Statement, con el cual podremos ejecutar sentencias en la BD.
- instruccion.executeQuery(); este método sirve para ejecutar consultas sobre la BD. Recibe como parámetro una sentencia SQL, y devuelve un objeto ResultSet que contendrá los datos de la consulta.
- while(tabla.next()) esto nos permitirá iterar indefinidamente, mientras en el objeto ResultSet hayan más registros.
- Posteriormente, dentro del while, podemos obtener los datos de la fila actual con los métodos getInt(int) y getString(int) de ResultSet.
- Las excepciones que manejamos son básicamente: ClassNotFoundException, que se lanzará por lo general cuando el programa no encuentre el Driver. SQLException, que se lanzará cuando hayan errores a nivel de SQL (errores al insertar datos, errores de sintaxis en las consultas, etc.).
CONEXIÓN DE BD CON POSTGRESQL DESDE PHP
El sistema de acceso a bases de datos PostgreSQL desde PHP es similar al usado para el acceso a bases de datos MySQL. Solo cambian los nombres de las funciones utilizadas, pero siguen la misma estructura. En los siguientes apartados vemos con más detalle las sentencias a utilizar.
Conexión con bases de datos PostgreSQL
Para establecer la conexión con una base de datos PostgreSQL desde PHP, se utiliza la función:
pg_connect("host=NombreHost dbname=BaseDatos user=Usuario
password=Contraseña")
cuyos parámetros, pasados como una cadena única, indican el nombre del servidor -o IP del mismo- ‘NombreHost’ donde se encuentra la BD, el nombre de la BD ‘BaseDatos’, el ‘Usuario’ de acceso a la base de datos, y la ‘Contraseña’ de acceso. En caso de éxito la función devuelve un identificador del enlace con el sistema de BD.
A diferencia de MySQL, no es preciso indicar con otra función la base de datos a la que se desea acceder, ya que se ha facilitado como parámetro a la función de conexión.
Finalmente, para cerrar la conexión utilizamos:
pg_close($conexion)
donde debemos pasarle como parámetro el enlace con la conexión inicialmente establecida.
CONEXIÓN A BD CON FIREBIRD:
Conectar a la base de datos de ejemplo :
Hay dos elementos en una cadena de conexión: el nombre del servidor y la ruta de acceso al archivo. El formato es como sigue:
servidor: letra_de_disco:\ruta\archivo_de_base_de_datos
Ejemplo en Windows:
serverxyz:C:\Archivos de programa\Firebird\examples\employee.fdb
Conectar a una base de datos Firebird siempre requiere que el usuario “se identifique” usando un nombre de usuario y clave válidos (LOGIN). Cualquier usuario aparte de SYSDBA, necesita también tener permisos a los objetos dentro de una base de datos.
Hay varias formas diferentes para conectar con una BD usando isql. Una forma es ejecutar isql en su terminal interactiva. Diríjase al subdirectorio bin de su instalación y en el prompt tipee el comando isql (nota: ↵ significa “presione Enter ”):
C:\Archivos de programa\Firebird\Firebird_1_5\bin>isql↵
Use CONNECT or CREATE DATABASE to specify a database
SQL>CONNECT "C:\Program Files\Firebird\Firebird_1_5\examples\employee.fdb"↵
CON>user 'SYSDBA' password 'masterkey';↵
En este punto, isql le informará que Ud se ha conectado:
DATABASE "C:\Archivos de programa\Firebird\Firebird_1_5\examples\employee.fdb",
User: sysdba
SQL>
Ahora puede seguir jugando con la base de datos employee.fdb. Los caracteres isql significan interactive SQL [utility]. Puede usarlo para consultar datos, obtener información acerca de los metadatos, crear objetos de base de datos, ejecutar scripts de definición de datos y mucho más.
Para volver a la línea de comandos escriba
SQL>QUIT;↵
REFERENCIAS BIBLIOGRAFICAS:
Desarrollo de Aplicaciones Web , Sw libre.
Ejemplo básico de programación con JDBC y MySQL « Linux, Java y programación.mht
JDBC.html
CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandro Quito Perez.htm
CONCLUSIÓN:
Es imortante conocer sobre los distinto manejadores de base de datos que existen, lo es aún más saber la sintaxis que deben llevar para poder realizar la correcta conexión con la base de datos, esto permite que podamos trabajar en un ambiente distribuido y con el manejo de toda la información.

