JTagua

Inicio » JDBC

Category Archives: JDBC

Anuncios

Migración y Metadatos en MySQL con JDBC.

¿Qué es un metadato?

Cualquier información respecto de un dato de una base de datos que nos ayuda a comprenderlo o utilizarlo. Los primeros metadatos de interés son aquellos que tienen que ver con la estructura de una base de datos: Tablas, Filas, Columnas …

Existe una gran variedad de métodos en el API DataBaseMetaData que nos permiten conocer los metadatos de una base de datos.

En java, las clases DataBaseMetaData y ResultSetMetaData permiten, respectivamente, analizar la estructura de una base de datos (qué tablas tiene, que columnas cada tabla, de qué tipos, etc) o de un ResultSet de una consulta, para averiguar cuántas columnas tiene dicho ResulSet, de qué columnas de base de datos proceden, de qué tipo son, etc.

(más…)

Anuncios

Introducción a JDBC.

JDBC es una API de Java que permite  ejecutar sentencias SQL. (JDBC es nombre de una marca registrada y no es un acrónimo, a pesar de todo, JDBC es a menudo interpretado como “Java DataBase Connectivity”). Consta de un conjunto de clases e interfaces escrito en lenguaje de programación Java.

Usando JDBC es fácil ejecutar sentencias SQL a cualquier base de datos relacional. Por esta razón, no es necesario escribir un programa para acceder a una base de datos tipo Access, otro programa para acceder a una base de datos tipo Oracle y así para cada tipo de base de datos. Se puede escribir un solo programa usando la API JDBC y el programa será capaz de enviar sentencias SQL a la base de datos apropiada. Además con una aplicación escrita en Java, se puede ejecutar en diferentes plataformas.

Aunque la API ODBC de Microsoft es probablemente la interface de programación para acceder a bases de datos relacionales bastante usada y ofrece la posibilidad de conectar a casi la totalidad de bases de datos, tiene en contra de la API JDBC que está escrita en C y por tanto no es portable entre distintos sistemas operativos.

En la siguiente página de Oracle puede ver todas las APIS para todas las bases de datos disponibles.

(más…)

JDBC + ODBC (MsAccess sin DSN)

En el caso de  ODBC Open DataBase Connectivity y con objeto de utilizar una base de datos MsAccess con JDBC sin hacer uso de las fuentes de datos o DSN, el driver será el mismo que en el caso anterior (Tutorial de JSP (19),

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

Mientras que la cadena de conexión necesaria para crear el objeto connection será,

String bd = “jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=H:/DSNPruebas.MDB”;
con = DriverManager.getConnection(bd, “admin”, “admin”);

Vea que ahora no es necesario especificar Un DSN (Origen de datos), estaríamos en el caso de conexión directa o dinámica.

(más…)

JDBC + ODBC (MsAccess con DSN)

El ODBC Open DataBase Connectivity es un standard creado por Microsoft para manejar ciertos tipos de bases de datos desde diferentes entornos de programación e independizándolos de éstos y por tanto evitando la especificidad de cada uno de los SGBD. Hoy por hoy, existe soporte ODBC para una multitud de bases de datos, las mas significativas En la actualidad existen ODBC para muchos sistemas de bases datos, tales como Informix, Access, PostgreSQL, MySQL, Oracle y SQL Server.

Existiendo ODBC drivers oportuno, éste puede utilizarse para aplicaciones Java por medio de el puente JDBC-ODBC proporcionado por Sun. Usar el puente JDBC-ODBC no es una solución ideal dado que:

  1. Requiere de la instalación de drivers ODBC y entradas de registro.
  2. Los drivers ODBC a su vez son implementados nativamente lo que compromete el soporte multiplataforma.

El puente es por si mismo un driver basado en tecnología JDBC que está definida en la clase sun.jdbc.odbc.JdbcOdbcDriver.

El puente JDBC-ODBC debe ser considerado como una solución transitoria. Con el desarrollo de drivers puros en Java, el puente se volverá innecesario.

Lo ideal es “Java Puro” y por ello, no al código nativo y no a las características de plataforma dependiente. Sin embargo puede utilizarse si se requiere desarrollar de forma rápida sin necesidad de esperar a que el fabricante de la base de datos utilizada proporcione el driver JDBC. Los drivers parcialmente nativos, como el puente JDBC-ODBC, le permite crear programas que pueden fácilmente ser adaptados a drivers puros en Java tan pronto como estén disponibles.

En términos de programación JDBC, el manejar ODBC obliga, a parte de definir un DSN (fuente de datos), a utilizar un driver especial, se trata de

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

Mientras que la cadena de conexión necesaria para crear el objeto connection será,

con = DriverManager.getConnection(“jdbc:odbc:DNSPruebas”, “root”, “root”);

este driver es específico, así como tasmbién lo es para cada una de las distintas bases de datos arriba enumeradas.

EJERCICIO1:

Vamos a realizar un ejercicio sencillo con MsAccess vía ODBC. Se tratará de crear una tabla en una base de datos ya existente y asociada a un DSN (o fuente de datos) al que llamaremos DNSPruebas, también crearemos una tabla e insertaremos varios registros.

Comenzaremos creando la base de datos, para ello abrimos una sesión de MsAccess y creamos la base de datos vacía denominada “DNSPruebas”,

Inmediatamente después creamos el DSN denominado DSNPruebas, para ello vamos al panel de control Windows y hacemos click sobre Herramientas Administrativas, es decir,

y después hacemos click en orígenes de Datos (ODBC),

aparecerá

Seleccionamos la pestaña “DNS de Sistema” y hacemos “Agregar”,

Seleccionamos el driver correspondiente a “Microsoft Access”, y hacemos Finalizar,

Nombramos el origen de datos como “DNSPruebas” y seleccionamos la base de datos DNSPruebas creada con anterioridad,

Aceptamos y finalmente,

Abrimos ahora una sesión de NetBeans y generamos un nuevo proyecto al que podríamos llamar “jdbc_odbc_msaccess_dsn”. Cuando aparezca la plantilla del index.jsp sustituimos el código por el siguiente otro:

Consideraciones:

1.-Vea que tenemos dos bloques try …catch, el primero de ellos controla y supervisa los errores de clase no encontrada y posibles errores en la creación del objeto connection. Pruebe, provocando un error intencionado este bloque.

2.-El segundo bloque try … catch controla las operaciones de creación de la tabla, las inserciones de registros y la instrucción select. Pruebe a provocar un error intencionado.

3.-Ensaye eliminar la tabla con la instrucción del sql “delete”.