0% encontró este documento útil (0 votos)
85 vistas4 páginas

Cómo Conectar Java y Access

El documento explica cómo conectar Java y Access mediante JDBC y ODBC. JDBC permite el acceso a bases de datos desde Java, mientras que ODBC es el estándar de Windows. Se necesitan controladores JDBC-ODBC que traduzcan entre los dos estándares. El documento guía al lector en la creación de un DSN de Access, el uso de las clases Connection, Statement y ResultSet de JDBC para realizar consultas y modificaciones en la base de datos.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
85 vistas4 páginas

Cómo Conectar Java y Access

El documento explica cómo conectar Java y Access mediante JDBC y ODBC. JDBC permite el acceso a bases de datos desde Java, mientras que ODBC es el estándar de Windows. Se necesitan controladores JDBC-ODBC que traduzcan entre los dos estándares. El documento guía al lector en la creación de un DSN de Access, el uso de las clases Connection, Statement y ResultSet de JDBC para realizar consultas y modificaciones en la base de datos.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

Cmo conectar Java y Access La capacidad para acceder a bases de datos desde Java la ofrece la API JDBC (Java

DataBase Conectivity). JDBC es un estndar para manejar bases de datos en Java. ODBC es un estndar de Windows para manejar bases de datos, de forma que cualquier programa en Windows que desee acceder a bases de datos genricas debe usar este estndar. La necesidad de crear un estndar propio para acceder a bases de datos desde Java se explica porque el estndar ODBC est programado en C y un programa que use este estndar, por lo tanto, depende de la plataforma. Controladores JDBC-ODBC Necesitamos acceder a un origen de datos ODBC pero contamos con una API que usa el estndar JDBC. Para solventar este problema las empresas realizan drivers que traducen el ODBC a JDBC. Hay varios tipos de Driver, pero para nuestro ejemplo usaremos los llamados puentes JDBC-ODBC. Estamos de suerte porque el JDK de Windows incorpora el driver necesario para conectar bases de datos Access. Crear un nuevo DSN (Data Source Name) Para realizar la conexin a una base de datos ODBC necesitaremos crear un perfil DSN desde el panel de control y posteriormente accederemos a la base de datos a partir del nombre del perfil. En el perfil DSN lo que se hace es indicar el driver a utilizar, as como el archivo o archivos del origen de datos. Estos son los pasos a llevar a cabo para configurar un perfil DSN. 1.- Iremos a Panel de Control. Ello se hace desde Inicio->Configuracin o desde MiPC. 2.- Ahora hacemos doble-click en el icono de Fuentes de datos ODBC (32 bits). 3.- En nuestra pantalla aparecer ahora la pestaa DSN usuario seleccionada. Para crear un nuevo perfil haremos click en Agregar... 4.- A continuacin se nos pide que ingresemos el controlador que vamos a usar en el nuevo perfil. En nuestro caso ser Microsoft Access Driver (*.mdb). 5.- Una vez aqu slo nos queda dar un nombre al origen de datos y especificar el archivo .mdb de origen. Tras aceptar la ventana ya tenemos creado un perfil con lo que ya podemos comenzar a programar. Clases, objetos y mtodos bsicos Lo que necesitamos para hacer nuestro programa es la API JDBC incluida en la ltima versin del JDK. El paquete a utilizar y el cual deberemos importar es el paquete java.sql Las primeras lneas de cdigo suelen ser rutinarias ya que siempre sern muy similares. Cargar el Driver Lo primero es hacer una llamada al Driver JDBC-ODBC para cargarlo. Eso se consigue con las siguientes lneas de cdigo: try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(Exception e){ System.out.println("No se ha podido cargar el Driver JDBC-ODBC"); }

Con esto ya tenemos cargado el Driver. Ahora bsicamente trabajaremos con tres objetos. Estos objetos son: Connection, Statement y ResultSet. El objeto Connection se obtiene al realizar la conexin a la base de datos. El objeto Statement se crea a partir del anterior y nos permite ejecutar SQL para hacer consultas o modificaciones en la base de datos. En caso de hacer una consulta (SELECT ... FROM ...) se nos devolver un objeto que representa los datos que deseamos consultar; este objeto es un objeto ResultSet (Hoja de resultados). El objeto Connection Debemos realizar la conexin a nuestro origen de datos. Para ello debemos crear un objeto Connection de la siguiente forma: Connection con = DriverManager.getConnection("jdbc:odbc:Nombre_Perfil_DSN", "Nombre_Usuario", "Contrasea"); Los dos ltimos parmetros pueden ser cadenas vacas "" a no ser que la base de datos las requiera. Con esto ya hemos realizado una conexin a nuestra base de datos. Pero esto todava no es suficiente. Ahora vamos a crear un objeto Statement con el que podremos ejecutar y hacer consultas SQL. Si hasta ahora todo ha sido rutinario a partir de ahora vamos a poder crear cdigo ms adaptado a las necesidades de nuestro programa. El objeto Statement Como se ha dicho, un objeto Statement se crea a partir del objeto Connection antes obtenido. Tambin como se ha dicho un objeto Statement nos permite hacer consultas SQL que nos devuelven una hoja de resultados. Pues bien, segn como deseamos que sea esa hoja de resultados (modificable, o no, sensible a las modificaciones o no,...) deberemos crear de una forma u otra el objeto Statement. Ms adelante se explican las diferencias entre crearlos de una u otra forma. De momento nos limitaremos ha hacerlo de la forma ms sencilla. Statement stat = con.createStatement(); De esta forma muy simple hemos creado un objeto Statement. Ahora podemos usar este objeto Statement para hacer modificaciones en la base de datos a travs del lenguaje SQL. Para realizar modificaciones, es decir, instrucciones INSERT, UPDATE o DELETE, se usa el mtodo executeUpdate pasando como parmetro una cadena de texto String que contenga la instruccin SQL. Para hacer una consulta, es decir, una instruccin SELECT debemos usar otro mtodo: el mtodo executeQuery que como el anterior se le ha de pasar un String que contenga la instruccin. Este mtodo nos devuelve un objeto ResultSet que contiene los datos obtenidos. Este objeto ser diferente segn como hayamos creado el objeto Statement. En el ejemplo anterior hemos usado un mtodo muy simple de Connection para crear el objeto Statement, pero hay otras formas de crearlo. Estas son y estas son las caractersticas que aportan a la hoja de resultados de una consulta: El mtodo anteriormente utilizado es el siguiente: createStatement(), pero existe el mismo mtodo al que le podemos pasar dos parmetros. En la documentacin se expresa as: createStatement(int resultSetType, int resultSetConcurrency). Los posibles valores a pasar son campos de la clase ResultSet. Por ejemplo para el parmetro resultSetType podemos elegir que el objeto ResultSet se pueda mover (entre registros) slo hacia delante (ResultSet.TYPE_FORWARD_ONLY), que se pueda mover pero que cuando se actualice, aunque los cambios ya hayan sido reflejados en la base de datos, el ResultSet no los 'sienta'

(ResultSet.TYPE_SCROLL_INSENSITIVE) o que se pueda mover y que los cambios si que se reflejen tambin en l (ResultSet.TYPE_SCROLL_SENSITIVE). Para el parmetro resultSetConcurrency podemos establecer dos valores diferentes: ResultSet.CONCUR_READ_ONLY si queremos que los datos se puedan leer pero no actualizar, y ResultSet.CONCUR_UPDATABLE si queremos permitir que la base de datos sea actualizable mediante el objeto ResultSet. Si no se usa el mtodo sin parmetros el objeto ser TYPE_FORWARD_ONLY y CONCUR_READ_ONLY. El objeto ResultSet: Hoja de resultados Moverse por la hoja de resultados Al hablar de posicin del cursor nos referimos a la posicin dentro de los datos del objeto ResultSet. Lo primero que hay que saber es que el cursor tiene tantas posiciones como filas tenga la consulta y dos ms que se sitan antes de la primera fila y despus de la ltima. Nada ms crear un objeto ResultSet, la posicin del cursor es la anterior a la primera fila. Para mover el cursor a la posicin siguiente usaremos el mtodo next() que nos devuelve una variable booleana: s, si se ha podido mover; no, si no ha sido posible el desplazamiento. Nos devolver false si estamos en el timo registro (el posterior al ltimo). Para movernos hacia atrs tenemos un mtodo muy similar: el mtodo previous() que al igual que el anterior nos devuelve un valor booleano que ser false si estamos en el registro anterior al primero. Estos mtodos nos permiten movernos de forma relativa por la hoja de resultados; si deseamos movernos a un registro determinado usaremos el mtodo absolute(int numero_fila), que tambin nos devuelve un valor boolean. Adems tenemos otros mtodos que son: afterLast(), que mueve el cursor a la fila posterior a la ltima; beforeFirst() que mueve el cursor a la fila anterior a la primera; last() que mueve el cursor a la ltima fila; first() que mueve el cursor a la primera fila. Todos ellos devuelven un valor booleano. Obtener datos de la hoja de resultados Para acceder a los datos de la hoja de resultados usamos los mtodos get...(int numeroColumna) o get...(String nombreColumna). Estos mtodos nos devuelven el valor que indica el nombre del mtodo (por ejemplo tenemos: getString, getInt, getDate, ...) indicando el nmero o el nombre de la columna. Hay que tener en cuenta que el nmero de columna es el nmero de columna en la hoja de resultados y por tanto se establece con el orden en el que se han incluido las columnas en la instruccin SELECT. Por ejemplo si hemos hecho la consulta de la siguiente forma: SELECT Nombre, Apellidos ... la columna Nombre ser la primera y la columna Apellidos ser la segunda independientemente de cmo estn situadas en la base de datos. Si hacemos un SELECT * FROM ..., en ese caso las columnas estarn en el orden en el que estn en la base de datos. Modificar la base de datos con el objeto ResultSet Hemos dicho que mediante el objeto Statement podemos ejecutar sentencias SQL para modificar la base de datos y hacer consultas, por lo que podemos usar el lenguaje SQL para hacer cualquier operacin en la base de datos; pero adems tenemos mtodos especializados que nos permiten hacer estas mismas tareas sin usar el lenguaje SQL. Para ello se usan los mtodos especializados del objeto ResultSet. Por tanto si deseamos modificar la base de datos a travs de Java, sin utilizar SQL, lo primero que deberemos hacer es realizar una consulta SQL para obtener el objeto ResultSet (parece un poco paradgico). Ahora slo nos queda usar los mtodos especializados de este objeto.

Por ejemplo podemos usar deleteRow() para borrar una fila. Para actualizar una fila se usan los mtodos update...(NombreColumna, valor) o update...(NumeroColumna, valor), as podemos encontrar updateFloat, updateString, ... Para que los cambios se reflejen en la base de datos se debe llamar al mtodo updateRow() o cancelRowUpdates() si queremos cancelar la actualizacin. resultset.updateString("Nombre", "PEPE"); resultset.updateRow(); Para insertar una fila nos hemos de mover a un lugar del cursor especial con el mtodo toInsertRow(), una vez all usaremos los mtodos update... explicados antes y para reflejar esta actualizacin llamar al mtodo insertRow()

También podría gustarte