Вы находитесь на странице: 1из 5

Gua prctica de introduccin bsica a JDBC

Programacin Orientada a Objetos Universidad Autnoma de Manizales

Instalar SQLite
Descargar el paquete que corresponda con la versin binaria (Precompiled Binaries) de la plataforma deseada: Linux, MacOSX o Windows desde la siguiente ubicacin. http://sqlite.org/download.html Descomprimir el paquete recin descargado en una ubicacin conocida. Ubicar la aplicacin sqlite3.exe (sqlite3 en Linux/MacOSX) en una ruta bajo el PATH (o actualice esta variable).

Crear la base de datos


Abrir una consola del sistema operativo y ubquese en el directorio del proyecto. Por ejemplo: $ mkdir ~/poo/proyecto $ cd ~/poo/proyecto Crear un archivo de texto con las sentencias SQL para crear la base de datos. $ vi schema_sqlite.sql CREATE TABLE producto ( codigo nombre precio vencimiento ); INSERT INTO producto (nombre, precio, vencimiento) VALUES ('Papitas', 500, '2012-05-18'); INSERT INTO producto (nombre, precio, vencimiento) VALUES ('Gaseosa', 1200, '2012-08-20'); INSERT INTO producto (nombre, precio, vencimiento) VALUES ('Jugo de naranja', 2000, '2012-12-24'); Ejecutar las sentencias SQL de schema_sqlite.sql para crear la nueva base de datos. INTEGER PRIMARY KEY VARCHAR(50) FLOAT DATE NOT NULL, NOT NULL, NOT NULL,

$ sqlite3 basededatos.db < schema_sqlite.sql

Descargar el driver JDBC para SQLite


Descargar la versin mas reciente del driver JDBC para SQLite de la siguiente ubicacin. http://www.xerial.org/maven/repository/artifact/org/xerial/sqlite-jdbc/

Crear un proyecto en Netbeans


Crear un nuevo proyecto de tipo Java Application.

Incluir la referencia del driver JDBC


Hacer clic derecho sobre el proyecto en Netbeans y elegir la opcin Properties. Seleccionar la opcin Libraries en la columna izquierda de las categoras. Presione el botn Add JAR/Folder en el lado izquierdo. Seleccione el archivo .jar del driver descargado en el paso anterior. Este archivo deber mantenerse en esa ubicacin ya que es referenciado de manera externa por el proyecto de Netbeans.

Importar las libreras de acceso a bases de datos


import java.sql.*; import java.util.Date;

Cargar la clase del driver JDBC


try { Class.forName("org.sqlite.JDBC"); } catch (ClassNotFoundException ex) { System.err.println("ERROR: no fue posible cargar el driver JDBC"); System.exit(1); }

Establecer la conexin con la base de datos


Por efectos de la demostracin toda la interaccin se va a realizar en un unico punto en el main, en una aplicacin real esto no sucede as. Por este motivo se deber crear una estructura de try/catch para las siguientes secciones. Connection connection = null; try { // Seccin #1 } catch(SQLException e) { System.err.println("ERROR ejecutando las consultas SQL: " + e.getMessage()); } finally { // Seccin #2 } El cdigo dispuesto en las secciones a continuacin se deber agregar en la seccin #1 hasta que se notifique algo diferente. Para establecer la conexin con la base de datos SQLite se utilizan la siguientes lneas de cdigo. connection = DriverManager.getConnection("jdbc:sqlite:ruta/basededatos.db"); Statement statement = connection.createStatement(); statement.setQueryTimeout(30); En esta seccin se realizan las siguientes tareas. 1. Obtener el objeto Connection que permite interactuar con la base de datos. 2. Obtener el objeto Statement de la Connection para construr y ejecutar las sentencias. 3. Asignar un tiempo mximo de espera (timeout) para la ejecucin de las consultas (opcional). // segundos

Agregar registros a una tabla


String sql = "INSERT INTO producto (nombre, precio, vencimiento) " + "VALUES ('Galletas', 800, '2012-04-12');";

int control = statement.executeUpdate(sql); System.out.println("Ejecutando INSERT: respuesta = " + control); La ejecucin de sentencias INSERT, al igual que UPDATE y DELETE, se realiza con el mtodo executeUpdate del Statement. Este mtodo retorna un valor entero que representa el nmero de registros afectados por la sentencia DML.

Remover registros de una tabla


sql = "DELETE FROM producto WHERE codigo = 1"; control = statement.executeUpdate(sql); System.out.println("Ejecutando DELETE: respuesta = " + control);

Actualizar registros de una tabla


sql = "UPDATE producto SET precio = 999 WHERE codigo = 4"; control = statement.executeUpdate(sql); System.out.println("Ejecutando UPDATE: respuesta = " + control);

Obtener informacin de una tabla


Para obtener informacin de una tabla se utiliza la sentencia SELECT de SQL. Para transmitirla al motor de bases de datos se utiliza el mtodo executeQuery de la clase Statement el cual retorna un conjunto de resultados (ResultSet) el cual puede ser navegado para recuperar los registros del resultado. ResultSet rs = statement.executeQuery("SELECT * FROM producto ORDER BY nombre"); while(rs.next()) { int codigo String nombre float precio Date vencimiento

= = = =

rs.getInt("codigo"); rs.getString("nombre"); rs.getFloat("precio"); rs.getDate("vencimiento");

System.out.println("Codigo: " + codigo); System.out.println("Nombre: " + nombre); System.out.println("Precio: " + precio);

System.out.println("Fecha : " + vencimiento); }

Terminar la conexin a la base de datos


Una vez terminadas las operaciones contra la base de datos es necesario cerrar su conexin. El siguiente cdigo se debe agregar en la seccin #2. try { if(connection != null) connection.close(); } catch(SQLException e) { System.err.println("ERROR cerrando la conexin: " + e.getMessage()); }

Ejercicio
Implementar la aplicacin descrita en esta gua, ejecutarla varias veces y analizar los resultados obtenidos.

Вам также может понравиться