Download Presentación Power Point
Document related concepts
Transcript
Java Data Base Connectivity Enrique Pastene A. JDBC Objetivos Conceptos básicos sobre bases de datos. Realizar conexión a una base de datos. Administrar una base de datos (objetos y métodos básicos). Ejemplos simples. 2 Base De Datos Definición Conjunto de datos relacionados. Este conjunto tiene como objetivo el de satisfacer la necesidad de información de algún ente. Observación : datos distinto a información. 3 Base De Datos La base de datos debe ser independiente de las aplicaciones que accedan a ella. La independencia se logra a través del módulo DBMS (Data Base Management System). La comunicación entre el DBMS y las aplicaciones se realiza usando el lenguaje SQL (Structured Query Language). 4 Base De Datos Aplicaciones SQL DBMS BD Física 5 Base De Datos Estructura Cliente Servidor El cliente debe tener una API (Application Program Interface) para poder interactuar con DBMS. El servidor deber tener el driver que reconoce a la API del cliente. La API más comúnmente usada es la ODBC (Open Data Base Connectivity). 6 Base De Datos Cliente Aplicación Cliente API ODBC Servidor Driver ODBC DBMS BD Física 7 Base De Datos Estructura interna Datos organizados en ENTIDADES. Las entidades contienen ATRIBUTOS. Las entidades se representan mediante tablas. Las columnas representan los atributos y las filas los registros. La ubicación unívoca de un registro en una entidad se realiza mediante una CLAVE PRIMARIA. Para relacionar entidades se usan CLAVES FORANEAS. 8 Base De Datos # PROD NOMBRE #BODEGA 100 SILLA 10 200 MESA 20 COMODA 30 300 400 CP ESCRITORIO Entidad Productos 10 CF Entidad Bodega # BOD DIRE FONO 10 SANTIAGO 3344557 20 RANCAGUA 225636 VALPARAISO 245689 30 40 IQUIQUE 454510 CP 9 JDBC - Conexión Pasos a seguir para conectarse a una base de datos. 1) 2) Cargar el driver a utilizar. Crear un objeto del tipo Connection, encargado de la conexión. 10 JDBC - Conexión Cargando el driver Para cargar el driver se realiza la llamada Class.forName("DriverXYZ"); Donde “DriverXYZ” es un string que contiene el nombre del driver a cargar. Por ejemplo JDBC-ODBC : sun.jdbc.odbc.JdbcOdbcDriver JDBC-MySQL : com.mysql.jdbc.Driver 11 JDBC - Conexión Creando objeto tipo Connection Este objeto se encarga de administrar la conexión. Al objeto ‘con’ se le asigna una conexión específica, a través del método getConnection de la clase DriverManager. Connection con = DriverManager.getConnection(url, "myLogin", "myPassword"); Donde url es la especificación de la base de datos a usar. La url se debe indicar de la siguiente manera : jdbc:subprotocolo//servidor:puerto/base de datos Para cerrar la conexión se utiliza el método close(). 12 JDBC - Administración Las sentencias SQL se pueden clasificar en actualizaciones y consultas. El objeto encargado de enviar las sentencias SQL al driver es del tipo Statement. Para enviar actualizaciones se utiliza el método executeUpdate (implementado dentro del objeto Statement). Para enviar consultas se utiliza el método executeQuery. (implementado dentro del objeto Statement). 13 JDBC - Administración Para crear un objeto del tipo Statement se debe utilizar el método createStatement (implementado dentro del objeto del tipo Connection) Statement stmt = con.createStatement(); 14 JDBC - Administración Creación de tabla stmt.executeUpdate("CREATE TABLE ALUMNOS " + "(ROL VARCHAR(32) NOT NULL, NOMBRE VARCHAR(32) NOT NULL," + "CARRERA VARCHAR(32), PRIMARY KEY (ROL))"); 15 JDBC - Administración Insertar registro stmt.executeUpdate( “INSERT INTO ALUMNOS " + "VALUES ('9821000-0', 'Armando Casas', 'Electronica')"); 16 JDBC - Administración El resultado de la consulta es recibido como un objeto del tipo ResultSet. Dentro del objeto ResultSet existen diferentes métodos para extraer la información. 17 JDBC - Administración El método next permite mover un puntero por las distintas filas que conforman el resultado. Para obtener la información se utiliza el método getXXX (donde XXX es el tipo de datos a recuperar), por ejemplo getString, getInt, getFloat, etc. 18 JDBC - Administración Consultas String query = "SELECT ROL, NOMBRE FROM ALUMNOS"; ResultSet rs = stmt.executeQuery(query); while (rs.next()) { String r = rs.getString("ROL"); String n = rs.getString("NOMBRE"); System.out.println(r + " " + n); } Salida : shell> 9821000-0 Armando Casas 19 JDBC - Aplicaciones Para ejecutar aplicaciones dirigirse a http://alumnos.elo.utfsm.cl/~antares/elo330 20