SlideShare una empresa de Scribd logo
1 de 66
JDBC Daniel Pecos Martínez [email_address] Curso JDBC Febrero 2011
1. Estándar JDBC ,[object Object],[object Object],[object Object]
1.1 Arquitectura y componentes ,[object Object],[object Object],[object Object]
1.1 Arquitectura y componentes ,[object Object],[object Object],[object Object],[object Object]
1.1 Arquitectura y componentes
1.1 Arquitectura y componentes
1.1 Arquitectura y componentes
1.1 Arquitectura y componentes
1.1 Arquitectura y componentes ,[object Object],[object Object],[object Object],[object Object],[object Object]
1.2 Drivers ,[object Object],[object Object],[object Object]
1.2 Drivers - Tipos ,[object Object],[object Object],[object Object],[object Object],[object Object]
1.2 Drivers - Tipos - Tipo 1 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
1.2 Drivers - Tipos - Tipo 2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
1.2 Drivers - Tipos - Tipo 3 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
1.2 Drivers - Tipos - Tipo 4 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
1.2 Drivers - Tipos
1.3 URLs ,[object Object],[object Object],[object Object],[object Object],[object Object]
2. API JDBC ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.1 Carga de Drivers ,[object Object],[object Object],[object Object],[object Object],¿Cómo se os ocurre que la JVM determinará que una clase es un driver JDBC en el estándar JDBC 4.0?
2.1 Carga de Drivers ,[object Object],[object Object],[object Object]
2.2 Conexiones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.2 Conexiones ,[object Object],[object Object],[object Object]
2.2 Conexiones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.2 Conexiones
2.2 Conexiones
2.2 Conexiones - Metadatos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.2 Conexiones - Metadatos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
EJERCICIO ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Realizar un programa Java que haga una conexión contra una base de datos JavaDB (derby) y muestre algunos de sus metadatos.
DERBY Derby  es un gestor de bases de datos relacionales OpenSource completamente implementada en Java. Es un proyecto de Apache y Oracle / Sun crearon un derivado (JavaDB) de la versión 10.5.3.0 incluido a partir de la JDK 6. Todos los datos relacionados con una base datos en Derby están persistidos en un directorio de la máquina donde se ejecuta, asegurando la integridad de éstos, además de su portabilidad entre distintos sistemas operativos y arquitecturas. Puede ser embebida en una aplicación Java o ejecutada como un servidor independiente. En función de este modo, debemos utilizar un driver diferente (incluido en el propio gestor de bases de datos), así como una cadena de conexión distinta. Derby :  http://db.apache.org/derby/ JavaDB :  http://www.oracle.com/technetwork/java/javadb/overview/index.html
2.3 Excepciones SQL ,[object Object],[object Object],[object Object],[object Object]
2.3 Excepciones SQL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.3 Excepciones SQL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.3 Excepciones SQL ,[object Object],[object Object]
2.3 Excepciones SQL Resúmen de excepciones SQL
EJERCICIO Reorganiza el código que tienes hecho utilizando una clase de utilidades (métodos estáticos) de forma que tu código principal quede de esta forma: public static void main(String[] args) { Connection connection = null; try { connection = JDBCUtils.getConnection(); /* NUESTRO CODIGO AQUI */ } catch (SQLException e) { JDBCUtils.printSQLException(e); } finally { JDBCUtils.closeConnection(connection); }  }
EJERCICIO Mejora la gestión de errores que ya tenías implementado en el ejercicio anterior.
2.4 Sentencias ,[object Object],[object Object],[object Object],[object Object]
2.4 Sentencias ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.4 Sentencias - Métodos ,[object Object],[object Object],[object Object],[object Object],[object Object]
EJERCICIO ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
EJERCICIO CREATE TABLE tecnocom.personas ( id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), nombre VARCHAR(40) NOT NULL, apellidos VARCHAR(60), telefono VARCHAR(15) NOT NULL, fechaNacimiento DATE, PRIMARY KEY (id) )
EJERCICIO DERBY requiere crear un SCHEMA previamente para almacenar las tablas, de forma que luego éstas serán accesibles mediante NOMBRE_SCHEMA.NOMBRE_TABLA. Para crear un schema hay que lanzar la sentencia: CREATE SCHEMA TECNOCOM y para borrarlo: DROP SCHEMA TECNOCOM RESTRICT
[object Object],[object Object],[object Object],[object Object],2.4 Sentencias - Prepared Statements
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],2.4 Sentencias - Prepared Statements
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],2.4 Sentencias - Prepared Statements
2.4 Sentencias - Prepared Statements Método que crea un objeto java.sql.Date a partir del año, mes y día: private static Date getDate(int year, int month, int day) { Calendar cal = Calendar.getInstance(); cal.set(cal.YEAR, year); cal.set(cal.MONTH, month-1); cal.set(cal.DATE, day); return new Date(cal.getTimeInMillis()); }
EJERCICIO Modifica el código que realiza las inserciones de los datos de prueba para que utilice PreparedStatements
2.4 Sentencias - Batch Updates ,[object Object],[object Object],[object Object]
2.4 Sentencias - Batch Updates ,[object Object],[object Object],[object Object],[object Object],[object Object]
EJERCICIO Escribe el código necesario para hacer múltiples inserciones en modo batch
2.5 Conjuntos de resultados ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.5 Conjuntos de resultados ,[object Object],[object Object],[object Object]
2.5 Conjuntos de resultados ,[object Object],[object Object],[object Object],[object Object]
2.5 Conjuntos de resultados ,[object Object],[object Object],[object Object],[object Object],[object Object]
2.5 Conjuntos de resultados ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.5 Conjuntos de resultados - Metadatos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.5 Conjuntos de resultados Principales métodos de ResultSet
2.5 Conjuntos de resultados Principales métodos de ResultSet (Cont.)
EJERCICIO Recupera e imprime por pantalla todos los datos que hayas insertado en la tabla PERSONAS
EJERCICIO Crea un método que imprima todas las tablas de la base de datos y su contenido. Crea un segundo método que borre las tablas y el schema Tecnocom.
EJERCICIO ,[object Object],[object Object],[object Object]
2.6 Transacciones ,[object Object],[object Object],[object Object]
PRÁCTICA - Diagrama de entidades
PRÁCTICA - Diagrama de capas
PRÁCTICA ,[object Object],[object Object],[object Object],[object Object],[object Object]
2.6 Transacciones ,[object Object],[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

JDBC MONOGRAFIA
JDBC MONOGRAFIAJDBC MONOGRAFIA
JDBC MONOGRAFIA
Sefira111
 
Bases Datos en java
Bases Datos en javaBases Datos en java
Bases Datos en java
jent46
 

La actualidad más candente (18)

Jdbc
JdbcJdbc
Jdbc
 
Jdbc
JdbcJdbc
Jdbc
 
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
 
Java DataBase Connectivity
Java DataBase ConnectivityJava DataBase Connectivity
Java DataBase Connectivity
 
Jdbc Mysql
Jdbc MysqlJdbc Mysql
Jdbc Mysql
 
Jdbc(JAVA DATABASE CONNECTIVITY)
Jdbc(JAVA DATABASE CONNECTIVITY)Jdbc(JAVA DATABASE CONNECTIVITY)
Jdbc(JAVA DATABASE CONNECTIVITY)
 
Java y Base de Datos
Java y Base de DatosJava y Base de Datos
Java y Base de Datos
 
Jdbc
JdbcJdbc
Jdbc
 
JDBC MONOGRAFIA
JDBC MONOGRAFIAJDBC MONOGRAFIA
JDBC MONOGRAFIA
 
Java Database Connectivity [JDBC]
Java Database Connectivity [JDBC]Java Database Connectivity [JDBC]
Java Database Connectivity [JDBC]
 
JDBC
JDBCJDBC
JDBC
 
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
 
Jdbc
JdbcJdbc
Jdbc
 
Java y Bases Datos
Java y Bases DatosJava y Bases Datos
Java y Bases Datos
 
Bases Datos en java
Bases Datos en javaBases Datos en java
Bases Datos en java
 
Manejo conexbd
Manejo conexbdManejo conexbd
Manejo conexbd
 
Conexion a bases de datos
Conexion a bases de datosConexion a bases de datos
Conexion a bases de datos
 
[ES] Conectividad de java a base de datos(jdbc)
[ES] Conectividad de java a base  de datos(jdbc)[ES] Conectividad de java a base  de datos(jdbc)
[ES] Conectividad de java a base de datos(jdbc)
 

Similar a T2 - JDBC

Similar a T2 - JDBC (20)

Manejo conexbd
Manejo conexbdManejo conexbd
Manejo conexbd
 
Trabajo de jdbc
Trabajo de jdbcTrabajo de jdbc
Trabajo de jdbc
 
Trabajo de jdbc
Trabajo de jdbcTrabajo de jdbc
Trabajo de jdbc
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Acceso a datos con JDBC.pdf
Acceso a datos con JDBC.pdfAcceso a datos con JDBC.pdf
Acceso a datos con JDBC.pdf
 
Jdbc
JdbcJdbc
Jdbc
 
Jdbc
JdbcJdbc
Jdbc
 
Acceso a datos con JAVA
Acceso a datos con JAVAAcceso a datos con JAVA
Acceso a datos con JAVA
 
Jdbc
JdbcJdbc
Jdbc
 
Jbdc
JbdcJbdc
Jbdc
 
JDBC(conjunto de clases e interfaces)
JDBC(conjunto de clases e interfaces)JDBC(conjunto de clases e interfaces)
JDBC(conjunto de clases e interfaces)
 
Trabajo desarrollo de soft.
Trabajo desarrollo de soft.Trabajo desarrollo de soft.
Trabajo desarrollo de soft.
 
JCBC
JCBCJCBC
JCBC
 
Qué es jdbc
Qué es jdbcQué es jdbc
Qué es jdbc
 
Diapositivas de jdbc
Diapositivas de jdbcDiapositivas de jdbc
Diapositivas de jdbc
 
Coneccion
ConeccionConeccion
Coneccion
 
JAVA DATABASE CONNECTIVITY (JDBC)
  JAVA DATABASE CONNECTIVITY (JDBC)  JAVA DATABASE CONNECTIVITY (JDBC)
JAVA DATABASE CONNECTIVITY (JDBC)
 
Bases de Datos en en www.fiec.espol.edu.ec
Bases de Datos en  en www.fiec.espol.edu.ecBases de Datos en  en www.fiec.espol.edu.ec
Bases de Datos en en www.fiec.espol.edu.ec
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Jdbc
JdbcJdbc
Jdbc
 

Más de Daniel Pecos Martínez (7)

20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript
 
Object Oriented Programming vs Functional Programming - Valencia.rb
Object Oriented Programming vs Functional Programming - Valencia.rbObject Oriented Programming vs Functional Programming - Valencia.rb
Object Oriented Programming vs Functional Programming - Valencia.rb
 
T3 - JPA
T3 - JPAT3 - JPA
T3 - JPA
 
T1 - Introducción
T1 - IntroducciónT1 - Introducción
T1 - Introducción
 
Tema 3 - Seguridad en Internet
Tema 3 - Seguridad en InternetTema 3 - Seguridad en Internet
Tema 3 - Seguridad en Internet
 
Tema 2 - Introducción a la Criptografía
Tema 2 - Introducción a la CriptografíaTema 2 - Introducción a la Criptografía
Tema 2 - Introducción a la Criptografía
 
Tema 1 - Introducción a la Seguridad Informática
Tema 1 - Introducción a la Seguridad Informática Tema 1 - Introducción a la Seguridad Informática
Tema 1 - Introducción a la Seguridad Informática
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (11)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

T2 - JDBC

  • 1. JDBC Daniel Pecos Martínez [email_address] Curso JDBC Febrero 2011
  • 2.
  • 3.
  • 4.
  • 5. 1.1 Arquitectura y componentes
  • 6. 1.1 Arquitectura y componentes
  • 7. 1.1 Arquitectura y componentes
  • 8. 1.1 Arquitectura y componentes
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16. 1.2 Drivers - Tipos
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 26.
  • 27.
  • 28.
  • 29. DERBY Derby es un gestor de bases de datos relacionales OpenSource completamente implementada en Java. Es un proyecto de Apache y Oracle / Sun crearon un derivado (JavaDB) de la versión 10.5.3.0 incluido a partir de la JDK 6. Todos los datos relacionados con una base datos en Derby están persistidos en un directorio de la máquina donde se ejecuta, asegurando la integridad de éstos, además de su portabilidad entre distintos sistemas operativos y arquitecturas. Puede ser embebida en una aplicación Java o ejecutada como un servidor independiente. En función de este modo, debemos utilizar un driver diferente (incluido en el propio gestor de bases de datos), así como una cadena de conexión distinta. Derby : http://db.apache.org/derby/ JavaDB : http://www.oracle.com/technetwork/java/javadb/overview/index.html
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. 2.3 Excepciones SQL Resúmen de excepciones SQL
  • 35. EJERCICIO Reorganiza el código que tienes hecho utilizando una clase de utilidades (métodos estáticos) de forma que tu código principal quede de esta forma: public static void main(String[] args) { Connection connection = null; try { connection = JDBCUtils.getConnection(); /* NUESTRO CODIGO AQUI */ } catch (SQLException e) { JDBCUtils.printSQLException(e); } finally { JDBCUtils.closeConnection(connection); } }
  • 36. EJERCICIO Mejora la gestión de errores que ya tenías implementado en el ejercicio anterior.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41. EJERCICIO CREATE TABLE tecnocom.personas ( id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), nombre VARCHAR(40) NOT NULL, apellidos VARCHAR(60), telefono VARCHAR(15) NOT NULL, fechaNacimiento DATE, PRIMARY KEY (id) )
  • 42. EJERCICIO DERBY requiere crear un SCHEMA previamente para almacenar las tablas, de forma que luego éstas serán accesibles mediante NOMBRE_SCHEMA.NOMBRE_TABLA. Para crear un schema hay que lanzar la sentencia: CREATE SCHEMA TECNOCOM y para borrarlo: DROP SCHEMA TECNOCOM RESTRICT
  • 43.
  • 44.
  • 45.
  • 46. 2.4 Sentencias - Prepared Statements Método que crea un objeto java.sql.Date a partir del año, mes y día: private static Date getDate(int year, int month, int day) { Calendar cal = Calendar.getInstance(); cal.set(cal.YEAR, year); cal.set(cal.MONTH, month-1); cal.set(cal.DATE, day); return new Date(cal.getTimeInMillis()); }
  • 47. EJERCICIO Modifica el código que realiza las inserciones de los datos de prueba para que utilice PreparedStatements
  • 48.
  • 49.
  • 50. EJERCICIO Escribe el código necesario para hacer múltiples inserciones en modo batch
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57. 2.5 Conjuntos de resultados Principales métodos de ResultSet
  • 58. 2.5 Conjuntos de resultados Principales métodos de ResultSet (Cont.)
  • 59. EJERCICIO Recupera e imprime por pantalla todos los datos que hayas insertado en la tabla PERSONAS
  • 60. EJERCICIO Crea un método que imprima todas las tablas de la base de datos y su contenido. Crea un segundo método que borre las tablas y el schema Tecnocom.
  • 61.
  • 62.
  • 63. PRÁCTICA - Diagrama de entidades
  • 65.
  • 66.