SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
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 !!!

Contenu connexe

Tendances

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 RailsFreelancer
 
Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Samuel Marrero
 
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
 
Jsp servlet- Tutorial BD Conexión
Jsp servlet- Tutorial BD ConexiónJsp servlet- Tutorial BD Conexión
Jsp servlet- Tutorial BD ConexiónPattzy Montero
 
Introducción a java EE 7
Introducción a java EE 7Introducción a java EE 7
Introducción a java EE 7Carlos Camacho
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web javaCésar Ocampo
 
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
 
Javaserver Faces (jsf)
Javaserver Faces (jsf)Javaserver Faces (jsf)
Javaserver Faces (jsf)Enrique Polo
 
JBossAS: Desarrollo con Java Server Faces
JBossAS: Desarrollo con Java Server FacesJBossAS: Desarrollo con Java Server Faces
JBossAS: Desarrollo con Java Server FacesAitor Acedo
 
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-2006Samuel Marrero
 
Ejercicio basico jsf’s
Ejercicio basico jsf’sEjercicio basico jsf’s
Ejercicio basico jsf’sayreonmx
 
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 2Laura Noussan Lettry
 

Tendances (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
 

En vedette

Designing Teams for Emerging Challenges
Designing Teams for Emerging ChallengesDesigning Teams for Emerging Challenges
Designing Teams for Emerging ChallengesAaron Irizarry
 
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 ArchivesNed Potter
 
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 CarsLinkedIn
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with DataSeth Familian
 
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 2017Drift
 
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 NicheLeslie Samuel
 

En vedette (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
 

Similaire à [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
 

Dernier

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 

Dernier (16)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 

[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.