Download JDBC - Tecnun
Document related concepts
no text concepts found
Transcript
Acceso a Bases de Datos con Java JDBC 01 de Abril de 2008 Fernando Alonso Indice • Sistemas de Gestión de la Información – Modelo Relacional • Introducción a SQL • Conectividad – ODBC / JDBC • Controladores (Drivers) JDBC • JDBC 3.0 API • Empezando a trabajar con JDBC Indice • Sistemas de Gestión de la Información – Modelo Relacional • Introducción a SQL • Conectividad – ODBC / JDBC • Controladores (Drivers) JDBC • JDBC 3.0 API • Empezando a trabajar con JDBC Sistemas de Gestión de la Información • Base de Datos – Forma de almacenamiento de información – Estructura y Datos – Modelo Relacional • Gestor de Base de Datos – Aplicación para manipular bases de datos – DBase, Access, Oracle, SQL Server, Derby, MySQL, PostgreSQL, ... • SQL – Structured Query Language – Lenguaje estándar para crear, examinar y manipular bases de datos relacionales – Permite manipular bases de datos en diferentes sistemas que soporten el estándar Modelo Relacional (Tablas) Campo, Atributo, Columna Registro, Fila Modelo Relacional (Relaciones) Tabla Clave Relación Indice • Sistemas de Gestión de la Información – Modelo Relacional • Introducción a SQL • Conectividad – ODBC / JDBC • Controladores (Drivers) JDBC • JDBC 3.0 API • Empezando a trabajar con JDBC Introducción a SQL • Recuperar información SELECT [ALL | DISTINCT] <seleccion> FROM <tablas> WHERE <condiciones de seleccion> [ORDER BY <columna> [ASC | DESC] [,<columna> [ASC | DESC]]...] • Almacenar información INSERT INTO <nombre tabla> [(<nombre columna> [,<nombre columna>]...)] VALUES (<expresion> [,<expresion>]...) • Eliminar datos DELETE FROM <nombre tabla> WHERE <condicion busqueda> • Actualizar datos UPDATE <nombre tabla> SET <nombre columna> = ( <expresion> | NULL ) [, <nombre columna> = ( <expresion> | NULL )]... WHERE <condicion busqueda> SQL con ExecuteSQL java ExecuteSQL prueba "Select * from Productos" CREATE TABLE FIRSTTABLE (ID INT PRIMARY KEY, NAME VARCHAR(12)); INSERT INTO FIRSTTABLE VALUES (10,'TEN'); INSERT INTO FIRSTTABLE VALUES (20,'TWENTY'); INSERT INTO FIRSTTABLE VALUES (30,'THIRTY'); SELECT * FROM FIRSTTABLE; Indice • Sistemas de Gestión de la Información – Modelo Relacional • Introducción a SQL • Conectividad – ODBC / JDBC • Controladores (Drivers) JDBC • JDBC 3.0 API • Empezando a trabajar con JDBC Conectividad - ODBC • ODBC – Open DataBase Connectivity – Interface de aplicaciones (API) para acceder a datos en sistemas gestores de bases de datos utilizando SQL Aplicación Cliente Data Source Name (DSN) ODBC Driver Manager ODBC Driver ODBC Driver ODBC Database Conectividad - JDBC • JDBC – Marca registrada – Java DataBase Connectivity • API de Java para ejecutar sentencias SQL • JDBC posibilita básicamente tres cosas: – Establecer una conexión con una base de datos desde Java – Enviar sentencias SQL a través de dicha conexión – Procesar los resultados Indice • Sistemas de Gestión de la Información – Modelo Relacional • Introducción a SQL • Conectividad – ODBC / JDBC • Controladores (Drivers) JDBC • JDBC 3.0 API • Empezando a trabajar con JDBC Controladores (Drivers) JDBC Indice • Sistemas de Gestión de la Información – Modelo Relacional • Introducción a SQL • Conectividad – ODBC / JDBC • Controladores (Drivers) JDBC • JDBC 3.0 API • Empezando a trabajar con JDBC JDBC 3.0 API • La JDBC 3.0 API comprende 2 paquetes: – java.sql – javax.sql (añade capacidades de la parte servidor) • Básicamente, los pasos a seguir son: – Registrar un driver: • Clase DriverManager – Establecer una conexión con la base de datos: • Interface Connection – Enviar sentencias SQL a la base de datos: • Interface Statement – Procesar los resultados de las consultas • Interface ResultSet Utilización de JDBC 3.0 API Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url = ″jdbc:odbc:wombat″; Connection con = DriverManager.getConnection(url); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(″SELECT a, b, c FROM Table2″); While(rs.next()){ int i = rs.getInt(a); String s = rs.getString(b); Float f = rs.getFloat(c); System.out.println(ROW= + i + + s + + f); } JDBC 3.0 API Connection createStatement prepareStatement subclasses Statement prepareCall subclasses PreparedStatement CallableStatement Data Types executeQuery executeQuery executeQuery getXXX ResultSet getMoreResults getResultSet Indice • Sistemas de Gestión de la Información – Modelo Relacional • Introducción a SQL • Conectividad – ODBC / JDBC • Controladores (Drivers) JDBC • JDBC 3.0 API • Empezando a trabajar con JDBC Empezando a trabajar con JDBC • Base de datos en formato Access – Base de Datos: Libros.mdb – Tabla: Datos – Campos: Codigo, Titulo, Autor • Creación de un Data Source Name (DSN) • Ejemplo de aplicación JDBC simple • Ejemplo con excepciones y MetaData Derby: base de datos en Java • Cloudscape de IBM es el proyecto Derby en Apache • Instalación – Directorio javadb • set DERBY_HOME=Q:\Java\javadb • set PATH=%DERBY_HOME%\bin;%PATH% • Ejemplo de base de datos – %DERBY_HOME%\demo\programs\toursdb\*.sql • Aplicación de utilidad: ij – Set classpath=%DERBY_HOME%\lib\derby.jar SQL con Derby • Ejemplo de utilización con ij: >IJ ij version 10.3 ij> CONNECT 'jdbc:derby:firstdb;create=true'; ij> CREATE TABLE FIRSTTABLE (ID INT PRIMARY KEY, NAME VARCHAR(12)); 0 rows inserted/updated/deleted ij> INSERT INTO FIRSTTABLE VALUES (10,'TEN'),(20,'TWENTY'),(30,'THIRTY'); 3 rows inserted/updated/deleted ij> SELECT * FROM FIRSTTABLE; ID |NAME -----------------------10 |TEN 20 |TWENTY 30 |THIRTY 3 rows selected ij>run 'ToursDB_schema.sql'; ij>run 'loadTables.sql'; Acceso a Bases de Datos con Java JDBC 01 de Abril de 2008 Fernando Alonso