Java con Bases de Datos
Java con bases de datos    Requisitos previos       Conocimientos de programación avanzada en Java       Modelado de datos...
Contenidos    Introducción    El estándar JDBC    Ejemplo con JDBC    Clases de JDBC    API JDBC 2.0                       3
IntroducciónTecnología de acceso a bases de datos    Entusiasmo inicial de la tecnología Java como plataforma    cliente/s...
IntroducciónAcceso a bases de datos desde Java    API Java Enterprise      JDBC    Métodos específicos proporcionados    p...
El estándar JDBC JDBC como API Enterprise   Conjunto de clases de acceso a bases de datos   relacionales   Desarrollo de a...
El estándar JDBCCaracterísticas Es parte de Java 1.1 Independiente de la plataforma Independiente de la base de datos Mode...
El estándar JDBCVentajas derivadas de JDBC:ODBC    Facilita la comunicación de la aplicación con    distintos SGBD’s.    P...
El estándar JDBCODBC Open DataBase Conectivity                                 A P L IC A C IÓ N                A d m in i...
El estándar JDBCConfiguración JDBC:ODBC                          10
El estándar JDBCConfiguración JDBC:ODBC                          11
El estándar JDBCConfiguración JDBC:ODBC                          12
El estándar JDBCConfiguración JDBC:ODBC                          13
El estándar JDBCConfiguración JDBC:ODBC                          14
El estándar JDBCConfiguración JDBC:ODBC                          15
El estándar JDBCConfiguración JDBC:ODBC                          16
El estándar JDBCImplementación   Paquete java.sql     Los programas deben declarar el uso de este     paquete             ...
Ejemplo de Implementación                                                      implementación dede Sun del O DBC          ...
Gestor deEl estándar JDBC                                              base de datos                                      ...
El estándar JDBCTipos de Clases               TIPO                     Clase JDBC                              java.sql.Dr...
Ejemplo con JDBCConsulta de datos import java.sql.*;                              Driver                                  ...
Ejemplo con JDBCConsulta de datos con condición  import java.sql.*;  final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";...
Ejemplo con JDBCInserción de datos import java.sql.*; final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver"; final String B...
Clases de JDBCjava.sql.DriverManager  Lleva el control de los gestores JDBC disponibles     Es posible que existan varios ...
Clases de JDBCjava.sql.Driver Gestor de información y configuración general Se carga durante la inicialización    mediante...
Clases de JDBCjava.sql.Connection  Puntero a la base de datos  Proporciona el contexto de trabajo para los  objetos Statem...
Clases de JDBCjava.sql.Statement  Ejecución de una sentencia SQL     executeQuery        Sentencias SELECT        devuelve...
Clases de JDBCjava.sql.PreparedStatement  Extiende Statement para añadir sentencias  precompiladas SQL    Compila la sente...
Clases de JDBCjava.sql.ResultSet   Contiene los datos resultado de una sentencia SQL   Se recuperan secuencialmente en fil...
Ejemplo con JDBCPrograma para trabajar con MySQL import java.sql.*; final String DRIVER = "org.gjt.mm.mysql.Driver"; final...
API JDBC 2.0Características  Requerimientos    Versión 1.2 o superior de JDK    Driver con soporte para JDBC 2.0    DBMS q...
Upcoming SlideShare
Loading in …5
×

Java con bd

1,524 views
1,385 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,524
On SlideShare
0
From Embeds
0
Number of Embeds
141
Actions
Shares
0
Downloads
129
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Java con bd

  1. 1. Java con Bases de Datos
  2. 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. 3. Contenidos Introducción El estándar JDBC Ejemplo con JDBC Clases de JDBC API JDBC 2.0 3
  4. 4. IntroducciónTecnologí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. 5. IntroducciónAcceso 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. 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. 7. El estándar JDBCCaracterí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. 8. El estándar JDBCVentajas 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. 9. El estándar JDBCODBC 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
  10. 10. El estándar JDBCConfiguración JDBC:ODBC 10
  11. 11. El estándar JDBCConfiguración JDBC:ODBC 11
  12. 12. El estándar JDBCConfiguración JDBC:ODBC 12
  13. 13. El estándar JDBCConfiguración JDBC:ODBC 13
  14. 14. El estándar JDBCConfiguración JDBC:ODBC 14
  15. 15. El estándar JDBCConfiguración JDBC:ODBC 15
  16. 16. El estándar JDBCConfiguración JDBC:ODBC 16
  17. 17. El estándar JDBCImplementació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. 18. Ejemplo de Implementación implementación dede Sun del O DBC una firma de bases de datos fichero .class Applet / Aplicación fichero .class API JDBC API JDBC M áquina Virtual JavaG 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 DBCSistema O perativo Sistema O perativo Internet/intranet Base de Datos Servidor de Base de Datos
  19. 19. Gestor deEl 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. 20. El estándar JDBCTipos 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. 21. Ejemplo con JDBCConsulta 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. 22. Ejemplo con JDBCConsulta 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. 23. Ejemplo con JDBCInserció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. 24. Clases de JDBCjava.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 seguridadfinal String BBDD = "jdbc:odbc:ARTICULOS";Connection conexion = DriverManager.getConnection(BBDD); 24
  25. 25. Clases de JDBCjava.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 getPropertyInfofinal String DRIVER ="sun.jdbc.odbc.JdbcOdbcDriver";Class.forName(DRIVER); 25
  26. 26. Clases de JDBCjava.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 rollbackConnection conexion = DriverManager.getConnection(BBDD); 26
  27. 27. Clases de JDBCjava.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/falseStatement select = conexion.createStatement();ResultSet resultado = select.executeQuery(“SELECT * FROM ACTIVIDAD”); 27
  28. 28. Clases de JDBCjava.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, setStringPreparedStatement select = conexion.prepareStatement( "SELECT * FROM articulos WHERE Titulo=?");select.setString(1,”Mi titulo”);ResultSet resultado = select.executeQuery(); 28
  29. 29. Clases de JDBCjava.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. 30. Ejemplo con JDBCPrograma 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. 31. API JDBC 2.0Caracterí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

×