SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
Java con Bases de Datos
Java con bases de datos

    Requisitos previos
       Conocimientos de programación avanzada en Java
       Modelado de datos
       SQL


    Objetivos
       Introducción al acceso a bases de datos desde
       aplicaciones con Java Data Base Connectivity (JDBC)


    Dirigido a
       Programadores y Analistas/Programadores que deseen
       desarrollar aplicaciones para Internet con acceso a
       bases de datos

                                                             2
Contenidos


    Introducción
    El estándar JDBC
    Ejemplo con JDBC
    Clases de JDBC
    API JDBC 2.0



                       3
Introducción
Tecnología de acceso a bases de datos

    Entusiasmo inicial de la tecnología Java como plataforma
    cliente/servidor y computación en Web
    Desarrolladores de bases de datos (Oracle, Informix)
    pretenden que los applet accedan a sus bases de datos a través
    de redes con tecnología Internet



   En la conferencia JavaOne (mayo 1996) Sun anuncia nuevos
   APIs Enterprise dirigidos a aplicaciones cliente/servidor
       JDBC (Java DataBase Conectivity) para acceso a bases de datos
       JVM incorpora un gestor específico para cada tipo de SGBD
                                                                 ⇒
          Se apoya en la especificación y filosofía de ODBC: JDBC⇒ ODBC




                                                                          4
Introducción
Acceso a bases de datos desde Java

    API Java Enterprise
      JDBC
    Métodos específicos proporcionados
    por los desarrolladores de cada base
    de datos
    Métodos desarrollados por terceras
    compañías


                                       5
El estándar JDBC

 JDBC como API Enterprise
   Conjunto de clases de acceso a bases de datos
   relacionales

   Desarrollo de aplicaciones cliente/servidor dirigidas a
   empresa mediante objetos Java, applets y servlets
      Sistemas de facturación
      Reserva de billetes de avión
      Catálogos
      Marketing

   Sistemas basados en una arquitectura de tres niveles
      Base de datos
      Lógica de la aplicación
      Interfaz de usuario
                                                             6
El estándar JDBC
Características
 Es parte de Java 1.1
 Independiente de la plataforma
 Independiente de la base de datos
 Modelado en base a ODBC
   Disminuye la curva de aprendizaje por su amplia
   utilización
   Existen implementaciones eficaces de ODBC en casi
   todas las plataformas y para casi todas las bases de
   datos
 Se basa en abstracciones comunes
   La conexión: conexion
   El conjunto de resultados: ResultSet


                                                          7
El estándar JDBC
Ventajas derivadas de JDBC:ODBC
    Facilita la comunicación de la aplicación con
    distintos SGBD’s.

    Proporciona una serie de funciones para la
    manipulación de datos (inserción, borrado y
    modificación), consultas, vistas y llamadas a
    procedimientos.

    Presenta una arquitectura de cuatro niveles:
      Aplicación
      Administrador de orígenes de datos.
      Controlador/es ODBC
      Orígenes de datos
                                                    8
El estándar JDBC
ODBC
 Open DataBase Conectivity

                                 A P L IC A C IÓ N



                A d m in is t r a d o r d e o r íg n e s d e d a t o s


          C o n t r o la d o r     C o n t r o la d o r   C o n t r o la d o r
             ODBC                     ODBC                   ODBC


            O r ig e n d e           O r ig e n d e         O r ig e n d e
               d ato s                  d ato s                d ato s


                A R Q U IT E C T U R A O D B C
                                                                                 9
El estándar JDBC
Configuración JDBC:ODBC




                          10
El estándar JDBC
Configuración JDBC:ODBC




                          11
El estándar JDBC
Configuración JDBC:ODBC




                          12
El estándar JDBC
Configuración JDBC:ODBC




                          13
El estándar JDBC
Configuración JDBC:ODBC




                          14
El estándar JDBC
Configuración JDBC:ODBC




                          15
El estándar JDBC
Configuración JDBC:ODBC




                          16
El estándar JDBC
Implementación
   Paquete java.sql
     Los programas deben declarar el uso de este
     paquete
                   import java.sql.*

   El Gestor JDBC
     Para una base de datos concreta
        Oracle
        Borland
     Genérico para varias bases de datos
        JDBC:ODBC
        Se traducen las llamadas JDBC en llamadas
        ODBC                                        17
Ejemplo de
 Implementación
                                                      implementación de
de Sun del O DBC
                                                         una firma de
                                                        bases de datos



  fichero .class      Applet / Aplicación
                                                        fichero .class




    API JDBC
                                                          API JDBC




                     M áquina Virtual Java
G estor de JDBC                                       G estor de JDBC
                                                      de la firma de la
                                                       base de datos

    Puente
 JDBC a O DBC



                     SO huésped / Hardw are

  G estor O DBC




Sistema O perativo                                    Sistema O perativo
                       Internet/intranet




                                              Base
                                               de
                                              Datos
                       Servidor de
                      Base de Datos
Gestor de


El estándar JDBC
                                              base de datos

                                              getConnection()



Esquema de clases
                            Conexión            Conexión                Conexión

 Mecanismo:
    Establecer conexión
                                                Sentencia


    Crear sentencia       createStatement()   prepareCall()        prepareStatement()




    Ejecutar sentencia         Sentencia
                                                 Sentencia
                                                 Invocable
                                                                        Sentencia
                                                                        Preparada




    Procesar resultados

                           executeUpdate()                                              Metadatos
    Finalizar sentencia
                           executeQuery()                         Resultset

    Cerrar conexión
                                                                                          Datos
                              execute()        getMoreResults()




                                                 getResultSet()


                                                                                                    19
El estándar JDBC
Tipos de Clases
               TIPO                     Clase JDBC

                              java.sql.Driver
   Implementación             java.sql.DriverManager
                              java.sql.DriverPropertyInfo

   Conexión a base de datos   java.sql.Connection

                              java.sql.Statement
   Sentencias SQL             java.sql.PreparedStatement
                              java.sql.CallableStatement

   Datos                      java.sql.ResulSet

   Errores                    java.sql.SQLException
                              java.sql.SQLWarning
                                                            20
Ejemplo con JDBC
Consulta de datos
 import java.sql.*;                              Driver
                                                 Driver
 ......
 final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";       Conexión
                                                              Conexión
 final String BBDD = "jdbc:odbc:ARTICULOS";
 try {
   Class.forName(DRIVER);
   Connection conexion = DriverManager.getConnection(BBDD);
   PreparedStatement select = conexion.prepareStatement(
      ”SELECT * FROM articulos ORDER BY Titulo”);              SQL
                                                                SQL
   ResultSet r = select.executeQuery();
   while (resultado.next()) {
      System.out.println(resultado.getString("Titulo"));
                                                         Acceso a
                                                          Acceso a
   }
                                                         los campos
                                                          los campos
   resultado.close(); select.close(); conexion.close();
 } catch (Exception e) {
   System.out.println("Error: " + e);
 }                                                                       21
Ejemplo con JDBC
Consulta de datos con condición
  import java.sql.*;
  final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
  final String BBDD = "jdbc:odbc:ARTICULOS";
  try {
    Class.forName(DRIVER);
    Connection conexion = DriverManager.getConnection(BBDD);
    PreparedStatement select = conexion.prepareStatement(
       "SELECT * FROM articulos WHERE Titulo=?");
    select.setString(1,miTitulo.getText());
    ResultSet resultado = select.executeQuery();
    while (resultado.next()) {
            lista.addItem(resultado.getString("Titulo"));
    }
    resultado.close(); select.close(); conexion.close();
  } catch (Exception e) {
    System.out.println("Error: " + e);
  }                                                            22
Ejemplo con JDBC
Inserción de datos
 import java.sql.*;
 final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
 final String BBDD = "jdbc:odbc:ARTICULOS";
 try {
   Class.forName(DRIVER);
   Connection conexion = DriverManager.getConnection(BBDD);
   PreparedStatement insert = conexion.prepareStatement(
     ”INSERT INTO articulos VALUES (?,?,?)");
   insert.setString(1,miTitulo);
   insert.setString(2,miCodigo);
   insert.setString(3,miTema);
   int resultado = insert.executeUpdate();
   insert.close(); conexion.close();
 } catch (Exception e) {
   System.out.println("Error: " + e);
 }
                                                              23
Clases de JDBC
java.sql.DriverManager
  Lleva el control de los gestores JDBC disponibles
     Es posible que existan varios dentro del sistema
     Por defecto, carga todos los disponibles en sql.drivers
     El gestor cargado debería registrarse con el método
     registerDriver
  Sintaxis utilizada: URL’s
     jdbc:<subprotocolo>:<parámetros>
     jdbc:odbc:NOTICIAS:UID=Sistema;PWD=SistemaPW
  Seguridad
     Hay que tener presente el modelo de seguridad

final String BBDD = "jdbc:odbc:ARTICULOS";
Connection conexion =
     DriverManager.getConnection(BBDD);
                                                               24
Clases de JDBC
java.sql.Driver
 Gestor de información y configuración general
 Se carga durante la inicialización
    mediante
       DriverManager.registerDriver
       Class.forName
 Se le pedirá información a lo largo del programa
 Residirá en memoria
 Métodos:
    connect
    getPropertyInfo

final String DRIVER ="sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(DRIVER);
                                                       25
Clases de JDBC
java.sql.Connection
  Puntero a la base de datos

  Proporciona el contexto de trabajo para los
  objetos Statement y ResultSet

  Soporta propiedades de transacción
    setAutoCommit
    commit
    rollback


Connection conexion =
    DriverManager.getConnection(BBDD);
                                                26
Clases de JDBC
java.sql.Statement
  Ejecución de una sentencia SQL
     executeQuery
        Sentencias SELECT
        devuelve un ResultSet
     executeUpdate
        Sentencias INSERT, DELETE, UPDATE, CREATE
        Devuelve un entero
     execute
        Sentencias desconocidas en tiempo de compilación o
        sentencias que devuelven resultados complejos
        Devuelve true/false

Statement select = conexion.createStatement();
ResultSet resultado =
     select.executeQuery(“SELECT * FROM ACTIVIDAD”);
                                                             27
Clases de JDBC
java.sql.PreparedStatement
  Extiende Statement para añadir sentencias
  precompiladas SQL
    Compila la sentencia SQL la primera vez
    Sentencias que son llamadas más de una vez en el
    programa
  Soporta parámetros de entrada
    setInt, setFloat, setLong, setString

PreparedStatement select = conexion.prepareStatement(
      "SELECT * FROM articulos WHERE Titulo=?");
select.setString(1,”Mi titulo”);
ResultSet resultado = select.executeQuery();

                                                        28
Clases de JDBC
java.sql.ResultSet
   Contiene los datos resultado de una sentencia SQL
   Se recuperan secuencialmente en filas
      next sirve para avanzar una fila
   Se puede acceder a los datos de las columnas en cualquier
   orden
      índice de posición
      nombre del campo
      Métodos: getString, getFloat, getInt, etc.
      Método wasNull()
PreparedStatement select = conexion.prepareStatement(
       "SELECT * FROM articulos WHERE Titulo=?");
select.setString(1,”Mi titulo”);
ResultSet resultado = select.executeQuery();
while (resultado.next())
      System.out.println(resultado.getString("Titulo"));
                                                               29
Ejemplo con JDBC
Programa para trabajar con MySQL
 import java.sql.*;
 final String DRIVER = "org.gjt.mm.mysql.Driver";
 final String BBDD = "jdbc:mysql://chico.inf-cr.uclm.es/articulos";
 try {
   Class.forName(DRIVER);
   Connection conexion = DriverManager.getConnection(BBDD);
   Statement insert = conexion.prepareStatement(
     ”INSERT INTO articulos VALUES (?,?,?)");
   insert.setString(1,miTitulo);
   insert.setString(2,miCodigo);
   insert.setString(3,miTema);
   int resultado = insert.executeUpdate();
   insert.close(); conexion.close();
 } catch (Exception e) {
   System.out.println("Error: " + e);
 }
                                                                      30
API JDBC 2.0
Características
  Requerimientos
    Versión 1.2 o superior de JDK
    Driver con soporte para JDBC 2.0
    DBMS que implemente características de JDBC 2.0

  Aportaciones
    Ampliación de la interfaz ResultSet
       Movimiento a cualquier posición y dirección
    Realización de modificaciones en los datos a través del
    ResultSet (sin SQL)
    Soporte para ejecución Batch de sentencias
    Nuevos tipos de datos correspondientes a SQL3



                                                              31

Mais conteúdo relacionado

Mais procurados

Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico maryr_
 
Capas de abstracción de la arquitectura de ordenadores
Capas de abstracción de la arquitectura de ordenadoresCapas de abstracción de la arquitectura de ordenadores
Capas de abstracción de la arquitectura de ordenadoresSandy Sócola
 
Mapa conceptual sistema operativo android
Mapa conceptual sistema operativo androidMapa conceptual sistema operativo android
Mapa conceptual sistema operativo androidSarii09
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 
Servicios del servidor
Servicios del servidorServicios del servidor
Servicios del servidorJenny Ospina
 
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Micael Gallego
 
Arquitectura de computadoras
Arquitectura de computadorasArquitectura de computadoras
Arquitectura de computadorasm220
 
Estructura de una base de datos
Estructura de una base de datosEstructura de una base de datos
Estructura de una base de datosZcnp1234
 
JDBC MONOGRAFIA
JDBC MONOGRAFIAJDBC MONOGRAFIA
JDBC MONOGRAFIASefira111
 
Lenguajes de bases de datos
Lenguajes de bases de datosLenguajes de bases de datos
Lenguajes de bases de datosralbarracin
 

Mais procurados (20)

Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
CONSULTAS AVANZADAS SQL.pptx
CONSULTAS AVANZADAS SQL.pptxCONSULTAS AVANZADAS SQL.pptx
CONSULTAS AVANZADAS SQL.pptx
 
Presentacion de Microsoft SQL Server.
Presentacion de Microsoft SQL Server. Presentacion de Microsoft SQL Server.
Presentacion de Microsoft SQL Server.
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico
 
Capas de abstracción de la arquitectura de ordenadores
Capas de abstracción de la arquitectura de ordenadoresCapas de abstracción de la arquitectura de ordenadores
Capas de abstracción de la arquitectura de ordenadores
 
Fundamentos de redes
Fundamentos de redesFundamentos de redes
Fundamentos de redes
 
Mapa conceptual sistema operativo android
Mapa conceptual sistema operativo androidMapa conceptual sistema operativo android
Mapa conceptual sistema operativo android
 
Puerto Usb
Puerto UsbPuerto Usb
Puerto Usb
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Servicios del servidor
Servicios del servidorServicios del servidor
Servicios del servidor
 
Firewall Logico
Firewall LogicoFirewall Logico
Firewall Logico
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Arquitecturas de computadoras
Arquitecturas de computadorasArquitecturas de computadoras
Arquitecturas de computadoras
 
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
 
Arquitectura de computadoras
Arquitectura de computadorasArquitectura de computadoras
Arquitectura de computadoras
 
Estructura de una base de datos
Estructura de una base de datosEstructura de una base de datos
Estructura de una base de datos
 
JDBC MONOGRAFIA
JDBC MONOGRAFIAJDBC MONOGRAFIA
JDBC MONOGRAFIA
 
Tipos de buses
Tipos de busesTipos de buses
Tipos de buses
 
Lenguajes de bases de datos
Lenguajes de bases de datosLenguajes de bases de datos
Lenguajes de bases de datos
 

Destaque

Bases De Datos Mysql Con Java
Bases De Datos Mysql Con JavaBases De Datos Mysql Con Java
Bases De Datos Mysql Con JavaYoni Villegas
 
Clase n°2 3-4 java
Clase n°2 3-4 javaClase n°2 3-4 java
Clase n°2 3-4 javajbersosa
 
Gestiondered 100222091702-phpapp01
Gestiondered 100222091702-phpapp01Gestiondered 100222091702-phpapp01
Gestiondered 100222091702-phpapp01Prof. Javier Troya
 
Bases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCBases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCCarlos Hernando
 
Pasos para Instalar MySQL server
Pasos para Instalar MySQL server Pasos para Instalar MySQL server
Pasos para Instalar MySQL server PEPE QH
 
Introducción práctica a JPA2
Introducción práctica a JPA2Introducción práctica a JPA2
Introducción práctica a JPA2jion1987
 
Bases de Datos en Java - Intro a Hibernate
Bases de Datos en Java - Intro a HibernateBases de Datos en Java - Intro a Hibernate
Bases de Datos en Java - Intro a HibernateCarlos Hernando
 
3. Curso Java JDBC (Bases de datos) - Curso 2005-2006
3. Curso Java JDBC (Bases de datos) - Curso 2005-20063. Curso Java JDBC (Bases de datos) - Curso 2005-2006
3. Curso Java JDBC (Bases de datos) - Curso 2005-2006Samuel Marrero
 
Calculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVCCalculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVCIgnacio Aular Reyes
 
Crear conexion a servidor en MySQL Workbench
Crear conexion a servidor en  MySQL WorkbenchCrear conexion a servidor en  MySQL Workbench
Crear conexion a servidor en MySQL WorkbenchJair Ospino Ardila
 
SO - Administración de Memoria
SO - Administración de MemoriaSO - Administración de Memoria
SO - Administración de MemoriaLuis Eraso
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de DatosRonny Parra
 
Crear y Eliminar Bases de datos en MySQL Workbench
Crear y Eliminar  Bases de datos en MySQL WorkbenchCrear y Eliminar  Bases de datos en MySQL Workbench
Crear y Eliminar Bases de datos en MySQL WorkbenchJair Ospino Ardila
 

Destaque (20)

Bbdd en java
Bbdd en javaBbdd en java
Bbdd en java
 
Bases De Datos Mysql Con Java
Bases De Datos Mysql Con JavaBases De Datos Mysql Con Java
Bases De Datos Mysql Con Java
 
Clase n°2 3-4 java
Clase n°2 3-4 javaClase n°2 3-4 java
Clase n°2 3-4 java
 
Clase No.2 Preparando el Ambiente de Java
Clase No.2 Preparando el Ambiente de Java Clase No.2 Preparando el Ambiente de Java
Clase No.2 Preparando el Ambiente de Java
 
Gestiondered 100222091702-phpapp01
Gestiondered 100222091702-phpapp01Gestiondered 100222091702-phpapp01
Gestiondered 100222091702-phpapp01
 
Jdb ccompleto
Jdb ccompletoJdb ccompleto
Jdb ccompleto
 
Bases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCBases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBC
 
Pasos para Instalar MySQL server
Pasos para Instalar MySQL server Pasos para Instalar MySQL server
Pasos para Instalar MySQL server
 
Introducción práctica a JPA2
Introducción práctica a JPA2Introducción práctica a JPA2
Introducción práctica a JPA2
 
Conexión de Base de Datos
Conexión de Base de DatosConexión de Base de Datos
Conexión de Base de Datos
 
Bases de Datos en Java - Intro a Hibernate
Bases de Datos en Java - Intro a HibernateBases de Datos en Java - Intro a Hibernate
Bases de Datos en Java - Intro a Hibernate
 
3. Curso Java JDBC (Bases de datos) - Curso 2005-2006
3. Curso Java JDBC (Bases de datos) - Curso 2005-20063. Curso Java JDBC (Bases de datos) - Curso 2005-2006
3. Curso Java JDBC (Bases de datos) - Curso 2005-2006
 
Calculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVCCalculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVC
 
Crear conexion a servidor en MySQL Workbench
Crear conexion a servidor en  MySQL WorkbenchCrear conexion a servidor en  MySQL Workbench
Crear conexion a servidor en MySQL Workbench
 
SO - Administración de Memoria
SO - Administración de MemoriaSO - Administración de Memoria
SO - Administración de Memoria
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de Datos
 
Curso basico de base de datos con java
Curso basico de base de datos con javaCurso basico de base de datos con java
Curso basico de base de datos con java
 
Video 5 base de datos
Video 5  base de datosVideo 5  base de datos
Video 5 base de datos
 
Modelos (UML)
Modelos (UML)Modelos (UML)
Modelos (UML)
 
Crear y Eliminar Bases de datos en MySQL Workbench
Crear y Eliminar  Bases de datos en MySQL WorkbenchCrear y Eliminar  Bases de datos en MySQL Workbench
Crear y Eliminar Bases de datos en MySQL Workbench
 

Semelhante a Java con bd (20)

Acceso a datos con JDBC.pdf
Acceso a datos con JDBC.pdfAcceso a datos con JDBC.pdf
Acceso a datos con JDBC.pdf
 
5 a bd_servidor
5 a bd_servidor5 a bd_servidor
5 a bd_servidor
 
Curso Básico de JDBC
Curso Básico de JDBCCurso Básico de JDBC
Curso Básico de JDBC
 
Jdbc lenguaje de programación
Jdbc lenguaje de programaciónJdbc lenguaje de programación
Jdbc lenguaje de programación
 
T1 - Introducción
T1 - IntroducciónT1 - Introducción
T1 - Introducción
 
Jdbc
JdbcJdbc
Jdbc
 
Jdbc diapositivva
Jdbc diapositivvaJdbc diapositivva
Jdbc diapositivva
 
Java DataBase Connectivity
Java DataBase ConnectivityJava DataBase Connectivity
Java DataBase Connectivity
 
Percy zelada
Percy zeladaPercy zelada
Percy zelada
 
Jdbc Mysql
Jdbc MysqlJdbc Mysql
Jdbc Mysql
 
Jdbc(desarrollo de software i yanina y yenny)
Jdbc(desarrollo de software i yanina y yenny)Jdbc(desarrollo de software i yanina y yenny)
Jdbc(desarrollo de software i yanina y yenny)
 
JDBC
JDBCJDBC
JDBC
 
Jdbc
JdbcJdbc
Jdbc
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Jdbc
JdbcJdbc
Jdbc
 
Jdbc
JdbcJdbc
Jdbc
 
JDBC
JDBC JDBC
JDBC
 
Jdbc(JAVA DATABASE CONNECTIVITY)
Jdbc(JAVA DATABASE CONNECTIVITY)Jdbc(JAVA DATABASE CONNECTIVITY)
Jdbc(JAVA DATABASE CONNECTIVITY)
 
Jbdc
JbdcJbdc
Jbdc
 
Diapositiva jdbc
Diapositiva jdbcDiapositiva jdbc
Diapositiva jdbc
 

Java con bd

  • 1. Java con Bases de Datos
  • 2. Java con bases de datos Requisitos previos Conocimientos de programación avanzada en Java Modelado de datos SQL Objetivos Introducción al acceso a bases de datos desde aplicaciones con Java Data Base Connectivity (JDBC) Dirigido a Programadores y Analistas/Programadores que deseen desarrollar aplicaciones para Internet con acceso a bases de datos 2
  • 3. Contenidos Introducción El estándar JDBC Ejemplo con JDBC Clases de JDBC API JDBC 2.0 3
  • 4. Introducción Tecnología de acceso a bases de datos Entusiasmo inicial de la tecnología Java como plataforma cliente/servidor y computación en Web Desarrolladores de bases de datos (Oracle, Informix) pretenden que los applet accedan a sus bases de datos a través de redes con tecnología Internet En la conferencia JavaOne (mayo 1996) Sun anuncia nuevos APIs Enterprise dirigidos a aplicaciones cliente/servidor JDBC (Java DataBase Conectivity) para acceso a bases de datos JVM incorpora un gestor específico para cada tipo de SGBD ⇒ Se apoya en la especificación y filosofía de ODBC: JDBC⇒ ODBC 4
  • 5. Introducción Acceso a bases de datos desde Java API Java Enterprise JDBC Métodos específicos proporcionados por los desarrolladores de cada base de datos Métodos desarrollados por terceras compañías 5
  • 6. El estándar JDBC JDBC como API Enterprise Conjunto de clases de acceso a bases de datos relacionales Desarrollo de aplicaciones cliente/servidor dirigidas a empresa mediante objetos Java, applets y servlets Sistemas de facturación Reserva de billetes de avión Catálogos Marketing Sistemas basados en una arquitectura de tres niveles Base de datos Lógica de la aplicación Interfaz de usuario 6
  • 7. El estándar JDBC Características Es parte de Java 1.1 Independiente de la plataforma Independiente de la base de datos Modelado en base a ODBC Disminuye la curva de aprendizaje por su amplia utilización Existen implementaciones eficaces de ODBC en casi todas las plataformas y para casi todas las bases de datos Se basa en abstracciones comunes La conexión: conexion El conjunto de resultados: ResultSet 7
  • 8. El estándar JDBC Ventajas derivadas de JDBC:ODBC Facilita la comunicación de la aplicación con distintos SGBD’s. Proporciona una serie de funciones para la manipulación de datos (inserción, borrado y modificación), consultas, vistas y llamadas a procedimientos. Presenta una arquitectura de cuatro niveles: Aplicación Administrador de orígenes de datos. Controlador/es ODBC Orígenes de datos 8
  • 9. El estándar JDBC ODBC Open DataBase Conectivity A P L IC A C IÓ N A d m in is t r a d o r d e o r íg n e s d e d a t o s C o n t r o la d o r C o n t r o la d o r C o n t r o la d o r ODBC ODBC ODBC O r ig e n d e O r ig e n d e O r ig e n d e d ato s d ato s d ato s A R Q U IT E C T U R A O D B C 9
  • 17. El estándar JDBC Implementación Paquete java.sql Los programas deben declarar el uso de este paquete import java.sql.* El Gestor JDBC Para una base de datos concreta Oracle Borland Genérico para varias bases de datos JDBC:ODBC Se traducen las llamadas JDBC en llamadas ODBC 17
  • 18. Ejemplo de Implementación implementación de de Sun del O DBC una firma de bases de datos fichero .class Applet / Aplicación fichero .class API JDBC API JDBC M áquina Virtual Java G estor de JDBC G estor de JDBC de la firma de la base de datos Puente JDBC a O DBC SO huésped / Hardw are G estor O DBC Sistema O perativo Sistema O perativo Internet/intranet Base de Datos Servidor de Base de Datos
  • 19. Gestor de El estándar JDBC base de datos getConnection() Esquema de clases Conexión Conexión Conexión Mecanismo: Establecer conexión Sentencia Crear sentencia createStatement() prepareCall() prepareStatement() Ejecutar sentencia Sentencia Sentencia Invocable Sentencia Preparada Procesar resultados executeUpdate() Metadatos Finalizar sentencia executeQuery() Resultset Cerrar conexión Datos execute() getMoreResults() getResultSet() 19
  • 20. El estándar JDBC Tipos de Clases TIPO Clase JDBC java.sql.Driver Implementación java.sql.DriverManager java.sql.DriverPropertyInfo Conexión a base de datos java.sql.Connection java.sql.Statement Sentencias SQL java.sql.PreparedStatement java.sql.CallableStatement Datos java.sql.ResulSet Errores java.sql.SQLException java.sql.SQLWarning 20
  • 21. Ejemplo con JDBC Consulta de datos import java.sql.*; Driver Driver ...... final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver"; Conexión Conexión final String BBDD = "jdbc:odbc:ARTICULOS"; try { Class.forName(DRIVER); Connection conexion = DriverManager.getConnection(BBDD); PreparedStatement select = conexion.prepareStatement( ”SELECT * FROM articulos ORDER BY Titulo”); SQL SQL ResultSet r = select.executeQuery(); while (resultado.next()) { System.out.println(resultado.getString("Titulo")); Acceso a Acceso a } los campos los campos resultado.close(); select.close(); conexion.close(); } catch (Exception e) { System.out.println("Error: " + e); } 21
  • 22. Ejemplo con JDBC Consulta de datos con condición import java.sql.*; final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver"; final String BBDD = "jdbc:odbc:ARTICULOS"; try { Class.forName(DRIVER); Connection conexion = DriverManager.getConnection(BBDD); PreparedStatement select = conexion.prepareStatement( "SELECT * FROM articulos WHERE Titulo=?"); select.setString(1,miTitulo.getText()); ResultSet resultado = select.executeQuery(); while (resultado.next()) { lista.addItem(resultado.getString("Titulo")); } resultado.close(); select.close(); conexion.close(); } catch (Exception e) { System.out.println("Error: " + e); } 22
  • 23. Ejemplo con JDBC Inserción de datos import java.sql.*; final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver"; final String BBDD = "jdbc:odbc:ARTICULOS"; try { Class.forName(DRIVER); Connection conexion = DriverManager.getConnection(BBDD); PreparedStatement insert = conexion.prepareStatement( ”INSERT INTO articulos VALUES (?,?,?)"); insert.setString(1,miTitulo); insert.setString(2,miCodigo); insert.setString(3,miTema); int resultado = insert.executeUpdate(); insert.close(); conexion.close(); } catch (Exception e) { System.out.println("Error: " + e); } 23
  • 24. Clases de JDBC java.sql.DriverManager Lleva el control de los gestores JDBC disponibles Es posible que existan varios dentro del sistema Por defecto, carga todos los disponibles en sql.drivers El gestor cargado debería registrarse con el método registerDriver Sintaxis utilizada: URL’s jdbc:<subprotocolo>:<parámetros> jdbc:odbc:NOTICIAS:UID=Sistema;PWD=SistemaPW Seguridad Hay que tener presente el modelo de seguridad final String BBDD = "jdbc:odbc:ARTICULOS"; Connection conexion = DriverManager.getConnection(BBDD); 24
  • 25. Clases de JDBC java.sql.Driver Gestor de información y configuración general Se carga durante la inicialización mediante DriverManager.registerDriver Class.forName Se le pedirá información a lo largo del programa Residirá en memoria Métodos: connect getPropertyInfo final String DRIVER ="sun.jdbc.odbc.JdbcOdbcDriver"; Class.forName(DRIVER); 25
  • 26. Clases de JDBC java.sql.Connection Puntero a la base de datos Proporciona el contexto de trabajo para los objetos Statement y ResultSet Soporta propiedades de transacción setAutoCommit commit rollback Connection conexion = DriverManager.getConnection(BBDD); 26
  • 27. Clases de JDBC java.sql.Statement Ejecución de una sentencia SQL executeQuery Sentencias SELECT devuelve un ResultSet executeUpdate Sentencias INSERT, DELETE, UPDATE, CREATE Devuelve un entero execute Sentencias desconocidas en tiempo de compilación o sentencias que devuelven resultados complejos Devuelve true/false Statement select = conexion.createStatement(); ResultSet resultado = select.executeQuery(“SELECT * FROM ACTIVIDAD”); 27
  • 28. Clases de JDBC java.sql.PreparedStatement Extiende Statement para añadir sentencias precompiladas SQL Compila la sentencia SQL la primera vez Sentencias que son llamadas más de una vez en el programa Soporta parámetros de entrada setInt, setFloat, setLong, setString PreparedStatement select = conexion.prepareStatement( "SELECT * FROM articulos WHERE Titulo=?"); select.setString(1,”Mi titulo”); ResultSet resultado = select.executeQuery(); 28
  • 29. Clases de JDBC java.sql.ResultSet Contiene los datos resultado de una sentencia SQL Se recuperan secuencialmente en filas next sirve para avanzar una fila Se puede acceder a los datos de las columnas en cualquier orden índice de posición nombre del campo Métodos: getString, getFloat, getInt, etc. Método wasNull() PreparedStatement select = conexion.prepareStatement( "SELECT * FROM articulos WHERE Titulo=?"); select.setString(1,”Mi titulo”); ResultSet resultado = select.executeQuery(); while (resultado.next()) System.out.println(resultado.getString("Titulo")); 29
  • 30. Ejemplo con JDBC Programa para trabajar con MySQL import java.sql.*; final String DRIVER = "org.gjt.mm.mysql.Driver"; final String BBDD = "jdbc:mysql://chico.inf-cr.uclm.es/articulos"; try { Class.forName(DRIVER); Connection conexion = DriverManager.getConnection(BBDD); Statement insert = conexion.prepareStatement( ”INSERT INTO articulos VALUES (?,?,?)"); insert.setString(1,miTitulo); insert.setString(2,miCodigo); insert.setString(3,miTema); int resultado = insert.executeUpdate(); insert.close(); conexion.close(); } catch (Exception e) { System.out.println("Error: " + e); } 30
  • 31. API JDBC 2.0 Características Requerimientos Versión 1.2 o superior de JDK Driver con soporte para JDBC 2.0 DBMS que implemente características de JDBC 2.0 Aportaciones Ampliación de la interfaz ResultSet Movimiento a cualquier posición y dirección Realización de modificaciones en los datos a través del ResultSet (sin SQL) Soporte para ejecución Batch de sentencias Nuevos tipos de datos correspondientes a SQL3 31