SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
Let's Rock Java


Fundamentos de Java Enterprise Edition
con JDeveloper

Eudris Cabrera Rodriguez

Ingeniero Telemático
Senior Software Developer
Skype:eudriscabrera
LinkedIn:http://www.linkedin.com/in/eudriscabrera

Noviembre 2011, Santiago de los Caballeros, R. D.
Objetivos


Aprender los conceptos fundamentales de conectividad de la
plataforma Java a Base de Datos, mediante el uso del Java Database
Connectivity API (JDBC).
Agenda
  ○   Conectividad de Java a Base de Datos(JDBC)
      ■ Introducción a JDBC.
      ■ Selección y Configuración del Driver.
      ■ Creando una Conexión.
      ■ Uso de Statements y ResultSets.

  ○   Realizar ejemplos de aplicaciones web interactuando
      con la base de datos.
Conectividad de Java a Base de Datos(JDBC)

Introducción a JDBC:

Java Database Connectivity, más conocida por sus siglas
JDBC, es una API que permite la ejecución de operaciones
sobre bases de datos desde el lenguaje de programación
Java, independientemente del sistema operativo donde se
ejecute o de la base de datos a la cual se accede, utilizando
el dialecto SQL del modelo de base de datos que se utilice.


El API JDBC se presenta como una colección de interfaces
Java y métodos de gestión de manejadores de conexión
hacia cada modelo específico de base de datos.
Conectividad de Java a Base de Datos(JDBC)

Un manejador de conexiones hacia un modelo de base de datos en
particular es un conjunto de clases que implementan las interfaces
Java y que utilizan los métodos de registro para declarar los tipos de
localizadores a base de datos (URL) que pueden manejar.

Para utilizar una base de datos particular, el usuario ejecuta su
programa junto con la biblioteca de conexión apropiada al modelo
de su base de datos, y accede a ella estableciendo una conexión, para
ello provee el localizador a la base de datos y los parámetros de
conexión específicos.
Conectividad de Java a Base de Datos(JDBC)

Un manejador de conexiones hacia un modelo de base de datos en
particular es un conjunto de clases que implementan las interfaces
Java y que utilizan los métodos de registro para declarar los tipos de
localizadores a base de datos (URL) que pueden manejar.

Para utilizar una base de datos particular, el usuario ejecuta su
programa junto con la biblioteca de conexión apropiada al modelo
de su base de datos, y accede a ella estableciendo una conexión, para
ello provee el localizador a la base de datos y los parámetros de
conexión específicos.
Conectividad de Java a Base de Datos(JDBC)

A partir de allí puede realizar con cualquier tipo de tareas con la
base de datos a las que tenga permiso: consulta, actualización,
creación, modificación y borrado de tablas, ejecución de
procedimientos almacenados en la base de datos, etc.
Conectividad de Java a Base de Datos(JDBC)
ARQUITECTURA JDBC
Conectividad de Java a Base de Datos(JDBC)

JDBC-ODBC Bridge plus ODBC Driver
Selección y Configuración del Driver
Class.forName("Nombre del driver");

 Con esta instrucción cargamos el driver de conexión a la base de
datos en MySQL. El driver debe de ser incluido con el classpath
para poder ser usado en el proyecto.

// Carga dinámica del driver
Class.forName("jdbc.DriverASCII")
Creando una Conexión
Luego de cargar el Driver, es necesario crear la conexión a la base
de datos.

Para ello usamos el método getConnection de la clase
DriverManager (que implementa la clase Driver).

A dicho método le pasamos como parámetro una URL de conexión
a la base de datos, que se compone, por lo general, de tres partes
separados por ":", jdbc:nombre_dbms:datos_de_conexion.

Aunque esto depende del tipo de DMBS y conector que usemos.
(Para más detalles de la URL, ver la documentación específica para
el conector).
Creando una Conexión


Este método además, devuelve un objeto Connection que usaremos
para crear y ejecutar sentencias SQL, sobre la base de datos.


DriverManager

   static Connection getConnection(
   String especBD,
   String nombreUsuario,
   String clave)
LET'S CODE !!!
Uso de Statements y ResultSets
   createStatement(): este método crea/devuelve un objeto
   Statement, con el cual podremos ejecutar sentencias en la
   base de datos.

   Statement
   void executeUpdate(String SQLupdateExpr)
   ResultSet executeQuery(String SQLqueryExpr)

   ExecuteQuery(): este método sirve para ejecutar
   consultas sobre la base de datos (para inserción y
   modificación de datos usar executeUpdate()). Recibe
   como parametro una sentencia SQL, y devuelve un objeto
   ResultSet que contendrá los datos de la consulta.
Uso de Statements y ResultSets
   ResultSet
   // Representa un conjunto de registros
   // que se pueden modificar iterativamente

   Bool next()
   String getString(String nombreColumna)
   Float getFloat (String nombreColumna)
Excepciones generadas por JDBC

  Las excepciones que manejamos son básicamente:
  ClassNotFoundException, que se lanzará por lo general
  cuando el programa no encuentre el Driver.

  SQLException, que se lanzará cuando hayan errores a
  nivel de SQL (errores al insertar datos, errores de sintaxis
  en las consultas, etc.).
Uso básico de JDBC II
 Statement stmt = con.createStatement();

 stmt.executeUpdate( “CREATE TABLE CUENTA (...)”);
 stmt.executeUpdate(“INSERT INTO CUENTA (...)” + “VALUES
 (...)”);
 stmt.executeUpdate(“UPDATE CUENTA ...”);
 stmt.executeUpdate( “DELETE FROM CUENTA ...”);
 ResultSet rs = stmt.executeQuery( “SELECT ... FROM
 CUENTA, ...”);

 while(rs.next()) {
   String nombre = rs.getString(“nombre”);
   Integer dni = rs.getInteger(“dniCliente”);
   Integer cc = rs.getInteger(“numCuenta”);
   Integer s = rs.getInteger(“saldo”);
  System.out.println( nombre + “” + dni + “” + cc + “” + s);
 }
Uso básico de JDBC

  ClassforName(“jdbc.DriverASCII”);

  Connection con = DriverManager.getConnection(
  “jdbc:odbc:cuentas”, “rmoriyon”, “cursofse”);
JDBC: Transacciones


  con.setAutoCommit(false);
  stmt.execute...

  if (s > 1000) con.commit();
  else con.rollBack();
LET'S CODE !!!
                  Hell yeah !.
● Servlet Demo
● JSP Demo
● Servlet + JSP
Cuando usar servlets y cuando usar páginas JSP ?.

La pregunta es lógica, al fin y al cabo ambos mecanismos
permiten generar contenidos dinámicos y además las JSP
son servlets generados por el servidor de aplicaciones.

La norma es que la mayor parte de las interacciones con el
usuario se realizarán en las JSP debido a su flexibilidad, ya
que integran de forma natural etiquetas HTML, XML, JSF,
etc.

Los servlets serán la excepción (un ejemplo típico es usar un
servlet como controlador (un controlador recibe peticiones o
eventos desde el interfaz de cliente y "sabe" el
componente que debe invocar).
Diversos escenarios de aplicación de la arquitectura JEE

Escenario basado en la web (web-centric application):

La plataforma JEE no obliga a usar en un sistema todas las
capas. Lo esencial es escoger el mecanismo adecuado para
el problema.

En este sentido, en ocasiones no hay (ni prevemos que haya)
la complejidad como para requerir una capa EJB.

Se denomina escenario web-centric porque el contenedor
web es el que realiza gran parte del trabajo del sistema
Diversos escenarios de aplicación de la arquitectura JEE

Escenario basado en la web (web-centric application):
Diversos escenarios de aplicación de la arquitectura JEE

Escenario basado en la web (web-centric application):

En este tipo de escenario la capa web implica tanto lógica de
presentación como lógica de negocio. Pero lo deseable es no
mezclar todas las cosas, planteando un diseño limpio y
modular.

Para ello las JSP y servlets no suelen acceder de forma
directa a la base de datos, sino que lo hacen por medio de un
servicio de acceso a datos.
Diversos escenarios de aplicación de la arquitectura JEE

Escenario basado en la web (web-centric application):




   El escenario web-centric es el más ampliamente utilizado
   actualmente.
Nota sobre MVC
Es muy usual utilizar el patrón MVC(Model View Controller )
como patrón arquitectónico.

En este patrón el modelo representa los datos y las reglas de
negocio que determinan el acceso y modificación de los
datos.

La vista traduce los contenidos del modelo a un o unos
modos de presentación.

Cuando el modelo cambia, es responsabilidad de la vista
mantener la consistencia de la presentación.
Nota sobre MVC
El controlador define el comportamiento de la aplicación, es
decir, asocia (map) las peticiones del usuario (captadas por
botones, ítems de menú, etc.) con acciones realizadas por
componentes del modelo.

En una aplicación web las peticiones aparecen como
peticiones HTTP que usan normalmente el método POST o
GET para invocar a la capa web.

El controlador es el responsable de seleccionar la vista que
debe responder a la petición realizada por el usuario.
Nota sobre MVC
En el escenario web-centric que en bastantes ocasiones las
aplicaciones no requieren acceder a múltiples
sistemas empresariales, es decir, la capa de lógica de
negocio no requiere fuerte conectividad distribuida con
sistemas empresariales.

No se contemplan EJBs, pero esto no significa que
desaparezcan los componentes del modelo, sino que los
servicios del modelo se implementan en JavaBeans (no
Enterprise JavaBeans) para ser utilizados por Servlets/JSP
dentro de la capa web
Nota sobre MVC
Nota sobre MVC
En una aplicación centrada en la capa Web sigue existiendo,
aunque sea ligera, un modelo, que contiene entidades y
reglas de negocio; es decir, el que no sean necesarios los
EJB no implica no modularizar, mezclarlo todo y eliminar
los componentes del modelo.

Nota: La especificación JEE no considera como
componentes JEE a los Java Beans ya que son diferentes de
los EJB (no confundirlos).

La arquitectura de componentes JavaBeans se pueden
utilizar tanto en la capa de cliente como de servidor,
mientras que los componentes Enterprise JavaBeans sólo se
utilizan en la capa de negocio como parte de los servicios del
servidor.
LET'S CODE !!!
MVC DEMO
PREGUNTAS ?
WE ROCK JAVA !!!

Más contenido relacionado

La actualidad más candente

Programacion web java
Programacion web javaProgramacion web java
Programacion web java
César Ocampo
 

La actualidad más candente (19)

Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
 
Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006
 
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
 
Jsp servlet- Tutorial BD Conexión
Jsp servlet- Tutorial BD ConexiónJsp servlet- Tutorial BD Conexión
Jsp servlet- Tutorial BD Conexión
 
Introducción a java EE 7
Introducción a java EE 7Introducción a java EE 7
Introducción a java EE 7
 
Frameworks J2EE
Frameworks J2EEFrameworks J2EE
Frameworks J2EE
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web java
 
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
 
Javaserver Faces (jsf)
Javaserver Faces (jsf)Javaserver Faces (jsf)
Javaserver Faces (jsf)
 
Rails intro
Rails introRails intro
Rails intro
 
JBossAS: Desarrollo con Java Server Faces
JBossAS: Desarrollo con Java Server FacesJBossAS: Desarrollo con Java Server Faces
JBossAS: Desarrollo con Java Server Faces
 
2. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-20062. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-2006
 
Curso Básico de JDBC
Curso Básico de JDBCCurso Básico de JDBC
Curso Básico de JDBC
 
T2 - JDBC
T2 - JDBCT2 - JDBC
T2 - JDBC
 
Ejercicio basico jsf’s
Ejercicio basico jsf’sEjercicio basico jsf’s
Ejercicio basico jsf’s
 
Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3
 
Trabajo de jdbc
Trabajo de jdbcTrabajo de jdbc
Trabajo de jdbc
 
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2
 

Destacado

Destacado (7)

Restricciones bd
Restricciones bdRestricciones bd
Restricciones bd
 
Designing Teams for Emerging Challenges
Designing Teams for Emerging ChallengesDesigning Teams for Emerging Challenges
Designing Teams for Emerging Challenges
 
UX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and ArchivesUX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and Archives
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Similar a [ES] Conectividad de java a base de datos(jdbc)

Bases Datos en java
Bases Datos en javaBases Datos en java
Bases Datos en java
jent46
 
Tema 15 aplicaciones de dos capas por gio
Tema 15   aplicaciones de dos capas por gioTema 15   aplicaciones de dos capas por gio
Tema 15 aplicaciones de dos capas por gio
Robert Wolf
 

Similar a [ES] Conectividad de java a base de datos(jdbc) (20)

Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
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
 
Trabajo de jdbc
Trabajo de jdbcTrabajo de jdbc
Trabajo de jdbc
 
Acceso a datos con JDBC.pdf
Acceso a datos con JDBC.pdfAcceso a datos con JDBC.pdf
Acceso a datos con JDBC.pdf
 
Jdbc Mysql
Jdbc MysqlJdbc Mysql
Jdbc Mysql
 
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
 
Qué es jdbc
Qué es jdbcQué es jdbc
Qué es jdbc
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
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
 
Connection
ConnectionConnection
Connection
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Tema 15 aplicaciones de dos capas por gio
Tema 15   aplicaciones de dos capas por gioTema 15   aplicaciones de dos capas por gio
Tema 15 aplicaciones de dos capas por gio
 
Manejo conexbd
Manejo conexbdManejo conexbd
Manejo conexbd
 
Manejo conexbd
Manejo conexbdManejo conexbd
Manejo conexbd
 
Jdbc
JdbcJdbc
Jdbc
 
Jdbc
JdbcJdbc
Jdbc
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

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...
 
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
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
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
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
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
 
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.
 
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
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 

[ES] Conectividad de java a base de datos(jdbc)

  • 1. Let's Rock Java Fundamentos de Java Enterprise Edition con JDeveloper Eudris Cabrera Rodriguez Ingeniero Telemático Senior Software Developer Skype:eudriscabrera LinkedIn:http://www.linkedin.com/in/eudriscabrera Noviembre 2011, Santiago de los Caballeros, R. D.
  • 2. Objetivos Aprender los conceptos fundamentales de conectividad de la plataforma Java a Base de Datos, mediante el uso del Java Database Connectivity API (JDBC).
  • 3. Agenda ○ Conectividad de Java a Base de Datos(JDBC) ■ Introducción a JDBC. ■ Selección y Configuración del Driver. ■ Creando una Conexión. ■ Uso de Statements y ResultSets. ○ Realizar ejemplos de aplicaciones web interactuando con la base de datos.
  • 4. Conectividad de Java a Base de Datos(JDBC) Introducción a JDBC: Java Database Connectivity, más conocida por sus siglas JDBC, es una API que permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java, independientemente del sistema operativo donde se ejecute o de la base de datos a la cual se accede, utilizando el dialecto SQL del modelo de base de datos que se utilice. El API JDBC se presenta como una colección de interfaces Java y métodos de gestión de manejadores de conexión hacia cada modelo específico de base de datos.
  • 5. Conectividad de Java a Base de Datos(JDBC) Un manejador de conexiones hacia un modelo de base de datos en particular es un conjunto de clases que implementan las interfaces Java y que utilizan los métodos de registro para declarar los tipos de localizadores a base de datos (URL) que pueden manejar. Para utilizar una base de datos particular, el usuario ejecuta su programa junto con la biblioteca de conexión apropiada al modelo de su base de datos, y accede a ella estableciendo una conexión, para ello provee el localizador a la base de datos y los parámetros de conexión específicos.
  • 6. Conectividad de Java a Base de Datos(JDBC) Un manejador de conexiones hacia un modelo de base de datos en particular es un conjunto de clases que implementan las interfaces Java y que utilizan los métodos de registro para declarar los tipos de localizadores a base de datos (URL) que pueden manejar. Para utilizar una base de datos particular, el usuario ejecuta su programa junto con la biblioteca de conexión apropiada al modelo de su base de datos, y accede a ella estableciendo una conexión, para ello provee el localizador a la base de datos y los parámetros de conexión específicos.
  • 7. Conectividad de Java a Base de Datos(JDBC) A partir de allí puede realizar con cualquier tipo de tareas con la base de datos a las que tenga permiso: consulta, actualización, creación, modificación y borrado de tablas, ejecución de procedimientos almacenados en la base de datos, etc.
  • 8. Conectividad de Java a Base de Datos(JDBC) ARQUITECTURA JDBC
  • 9. Conectividad de Java a Base de Datos(JDBC) JDBC-ODBC Bridge plus ODBC Driver
  • 10. Selección y Configuración del Driver Class.forName("Nombre del driver"); Con esta instrucción cargamos el driver de conexión a la base de datos en MySQL. El driver debe de ser incluido con el classpath para poder ser usado en el proyecto. // Carga dinámica del driver Class.forName("jdbc.DriverASCII")
  • 11. Creando una Conexión Luego de cargar el Driver, es necesario crear la conexión a la base de datos. Para ello usamos el método getConnection de la clase DriverManager (que implementa la clase Driver). A dicho método le pasamos como parámetro una URL de conexión a la base de datos, que se compone, por lo general, de tres partes separados por ":", jdbc:nombre_dbms:datos_de_conexion. Aunque esto depende del tipo de DMBS y conector que usemos. (Para más detalles de la URL, ver la documentación específica para el conector).
  • 12. Creando una Conexión Este método además, devuelve un objeto Connection que usaremos para crear y ejecutar sentencias SQL, sobre la base de datos. DriverManager static Connection getConnection( String especBD, String nombreUsuario, String clave)
  • 14. Uso de Statements y ResultSets createStatement(): este método crea/devuelve un objeto Statement, con el cual podremos ejecutar sentencias en la base de datos. Statement void executeUpdate(String SQLupdateExpr) ResultSet executeQuery(String SQLqueryExpr) ExecuteQuery(): este método sirve para ejecutar consultas sobre la base de datos (para inserción y modificación de datos usar executeUpdate()). Recibe como parametro una sentencia SQL, y devuelve un objeto ResultSet que contendrá los datos de la consulta.
  • 15. Uso de Statements y ResultSets ResultSet // Representa un conjunto de registros // que se pueden modificar iterativamente Bool next() String getString(String nombreColumna) Float getFloat (String nombreColumna)
  • 16. Excepciones generadas por JDBC Las excepciones que manejamos son básicamente: ClassNotFoundException, que se lanzará por lo general cuando el programa no encuentre el Driver. SQLException, que se lanzará cuando hayan errores a nivel de SQL (errores al insertar datos, errores de sintaxis en las consultas, etc.).
  • 17. Uso básico de JDBC II Statement stmt = con.createStatement(); stmt.executeUpdate( “CREATE TABLE CUENTA (...)”); stmt.executeUpdate(“INSERT INTO CUENTA (...)” + “VALUES (...)”); stmt.executeUpdate(“UPDATE CUENTA ...”); stmt.executeUpdate( “DELETE FROM CUENTA ...”); ResultSet rs = stmt.executeQuery( “SELECT ... FROM CUENTA, ...”); while(rs.next()) { String nombre = rs.getString(“nombre”); Integer dni = rs.getInteger(“dniCliente”); Integer cc = rs.getInteger(“numCuenta”); Integer s = rs.getInteger(“saldo”); System.out.println( nombre + “” + dni + “” + cc + “” + s); }
  • 18. Uso básico de JDBC ClassforName(“jdbc.DriverASCII”); Connection con = DriverManager.getConnection( “jdbc:odbc:cuentas”, “rmoriyon”, “cursofse”);
  • 19. JDBC: Transacciones con.setAutoCommit(false); stmt.execute... if (s > 1000) con.commit(); else con.rollBack();
  • 20. LET'S CODE !!! Hell yeah !. ● Servlet Demo ● JSP Demo ● Servlet + JSP
  • 21. Cuando usar servlets y cuando usar páginas JSP ?. La pregunta es lógica, al fin y al cabo ambos mecanismos permiten generar contenidos dinámicos y además las JSP son servlets generados por el servidor de aplicaciones. La norma es que la mayor parte de las interacciones con el usuario se realizarán en las JSP debido a su flexibilidad, ya que integran de forma natural etiquetas HTML, XML, JSF, etc. Los servlets serán la excepción (un ejemplo típico es usar un servlet como controlador (un controlador recibe peticiones o eventos desde el interfaz de cliente y "sabe" el componente que debe invocar).
  • 22. Diversos escenarios de aplicación de la arquitectura JEE Escenario basado en la web (web-centric application): La plataforma JEE no obliga a usar en un sistema todas las capas. Lo esencial es escoger el mecanismo adecuado para el problema. En este sentido, en ocasiones no hay (ni prevemos que haya) la complejidad como para requerir una capa EJB. Se denomina escenario web-centric porque el contenedor web es el que realiza gran parte del trabajo del sistema
  • 23. Diversos escenarios de aplicación de la arquitectura JEE Escenario basado en la web (web-centric application):
  • 24. Diversos escenarios de aplicación de la arquitectura JEE Escenario basado en la web (web-centric application): En este tipo de escenario la capa web implica tanto lógica de presentación como lógica de negocio. Pero lo deseable es no mezclar todas las cosas, planteando un diseño limpio y modular. Para ello las JSP y servlets no suelen acceder de forma directa a la base de datos, sino que lo hacen por medio de un servicio de acceso a datos.
  • 25. Diversos escenarios de aplicación de la arquitectura JEE Escenario basado en la web (web-centric application): El escenario web-centric es el más ampliamente utilizado actualmente.
  • 26. Nota sobre MVC Es muy usual utilizar el patrón MVC(Model View Controller ) como patrón arquitectónico. En este patrón el modelo representa los datos y las reglas de negocio que determinan el acceso y modificación de los datos. La vista traduce los contenidos del modelo a un o unos modos de presentación. Cuando el modelo cambia, es responsabilidad de la vista mantener la consistencia de la presentación.
  • 27. Nota sobre MVC El controlador define el comportamiento de la aplicación, es decir, asocia (map) las peticiones del usuario (captadas por botones, ítems de menú, etc.) con acciones realizadas por componentes del modelo. En una aplicación web las peticiones aparecen como peticiones HTTP que usan normalmente el método POST o GET para invocar a la capa web. El controlador es el responsable de seleccionar la vista que debe responder a la petición realizada por el usuario.
  • 28. Nota sobre MVC En el escenario web-centric que en bastantes ocasiones las aplicaciones no requieren acceder a múltiples sistemas empresariales, es decir, la capa de lógica de negocio no requiere fuerte conectividad distribuida con sistemas empresariales. No se contemplan EJBs, pero esto no significa que desaparezcan los componentes del modelo, sino que los servicios del modelo se implementan en JavaBeans (no Enterprise JavaBeans) para ser utilizados por Servlets/JSP dentro de la capa web
  • 30. Nota sobre MVC En una aplicación centrada en la capa Web sigue existiendo, aunque sea ligera, un modelo, que contiene entidades y reglas de negocio; es decir, el que no sean necesarios los EJB no implica no modularizar, mezclarlo todo y eliminar los componentes del modelo. Nota: La especificación JEE no considera como componentes JEE a los Java Beans ya que son diferentes de los EJB (no confundirlos). La arquitectura de componentes JavaBeans se pueden utilizar tanto en la capa de cliente como de servidor, mientras que los componentes Enterprise JavaBeans sólo se utilizan en la capa de negocio como parte de los servicios del servidor.