JEE Entity Enterprise Beans Herencia. 2009Ing. de Sistemas II2 Herencia y Polimorfismo en Entity Beans Los Entity Beans son clases Java comunes que soportan.

Slides:



Advertisements
Presentaciones similares
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
Advertisements

FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
2010Ing. de Sistemas II Persistencia en EJB3 Pasos para crear entity beans.
JEE Introducción a Java Enterprise Edition (JEE) y el modelo Enterprise Java Beans (EJB)
Las aplicaciones requieren datos persistentes
Acceso a Bases de Datos con Java
Curso de java básico (scjp)
Empaquetado de Entity Beans
Curso de java básico (scjp)
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación.
integridad referencial
POLIMORFISMO UNIDAD 4.
BASE DE DATOS OBJETO RELACIONAL
Herencia en C#.
Lenguaje de programación Java
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Arquitectura CLARO-TECNOTREE
Conceptos más avanzados de Programación Orientada a Objetos Programación 2005 Licenciatura de Lingüística y Nuevas Tecnologías.
Unidad 6: EJB 3.0 David Rodríguez 1.
Teoría de los lenguajes Proyecto SIGU Equipo Nº3 Universidad Argentina J. F. Kennedy Sede: Don Bosco Integrantes: Irene Arias Fernández Mariana Pacheco.
Lenguaje de consulta de Hibernate
Herencia y Polimorfismo
Encapsulamiento y Abstracción
JAVA Persistence API (JPA)
Unidad 3 Lenguaje SQL Contenidos Que es SQL ? Estructura de SQL
Programación Orientada a Objetos en Java
Marzo 2007 Lenguajes Visuales Clase III.
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
HERENCIA.
Enterprise Java Beans Rubén Trujillo Sept-Dic 2008.
Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Herencia e Interfaces.
Java Persistance API JPA.
Herencia y Polimorfismo en JAVA
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
Lic. Rosemary Torrico Bascopé
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Técnicas avanzadas de programación Interfaces
1 TEMA 5. Seguridad en Java 1.Introducción a los Controladores de Seguridad 2.Decidir qué Métodos Sobreescribir del SecurityManager 3.Escribir un Controlador.
SCJP Sun Certified Programmer for Java 6
Desarrollo de Aplicaciones Utilizando Java Edición Empresarial – JEE6
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
Diplomado Desarrollo de Aplicaciones en Internet
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA DOS ORIENTACION A OBJETOS.
Herramientas de polimorfismo y herencia en C++
IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.
Fernando Alonso Nicolás Serrano Acceso a Bases de Datos con Java JDBC 01 de Abril de 2008.
Enterprise Java Beans. EJBs Beans gestionados por un contenedor del servidor de aplicaciones para gestionar el acceso a recursos (bases de datos, colas.
Frameworks de Persistencia Java Prof. Ing. Esteban Ramírez
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Informatica II1 Clases Extendidas La clase extendida hereda los campos y métodos de la clase que ha sido extendida. La clase original se conoce como superclase.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
Unidad 2.1: INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS.
Presentado por: PABLO ANDRES DIAZ SAIN HASSAM CAICEDO
Curso de Java y Aplicaciones Web Facultad Politécnica – U.N.A. Ing. Esteban Ramírez Persistencia Java.
Detalles Generales sobre Java
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) LENGUAJES DE PROGRAMACIÓN PARA EL DESARROLLO DE INTERFACES.
CONCEPTOS.
Bases de Datos SQL.
Clases “ Es una Abstracción de un elemento del mundo real ”
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
INTEGRACION DE LAS TECNOLOGIAS DE LA INFORMACION Y COMUNICACION Implementación de base de datos (Lenguaje de manipulación de datos) Ing. Linda Masias Morales.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Concepto de Tipo y Subtipo Diseño e Implementación Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 10 Versión.
Crear Aplicación Cliente para Conectarse a una Base de Datos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Herencia.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

JEE Entity Enterprise Beans Herencia

2009Ing. de Sistemas II2 Herencia y Polimorfismo en Entity Beans Los Entity Beans son clases Java comunes que soportan herencia –Cuando se persisten, la herencia (variables en la superclase y en la subclase) debe ser tomada en cuenta. –Existen 3 estrategias para persistir la herencia. Para el curso vamos a utilizar sólo una: –Estrategia Single Table per Class. Los Entity Beans son clases Java comunes que soportan polimorfismo –Las subclases siempre se pueden usar en lugar de la clase padre Polimorfismo en Relaciones y en Consultas.

2009Ing. de Sistemas II3 Implementación de herencia en Entity Beans Estrategia Single Table per Class –La superclase y todas las subclases se persisten en la misma tabla. –Esta tabla tiene una columna por cada variable en la jerarquía. –Se utiliza una columna especial, eldiscriminador, que sirve para que el contenedor sepa cual es el tipo concreto de cada fila. –La mejor estrategia desde el punto de vista de Objetos

2009Ing. de Sistemas II4 Implementación de herencia en @Inheritance(strategy = = Tipo", discriminatorType = public class Articulo implements Serializable { private long id; private String nombre; private float precio; private @Inheritance(strategy = = Tipo", discriminatorType = public class Articulo implements Serializable { private long id; private String nombre; private float precio; private public class Saco extends Articulo { private String color; private public class Saco extends Articulo { private String color; private String talle;... TipoIdPrecioNombre 1 ColorTalleOrigen 2 3 4S S A A... null Negro Rojo XL L null

2009Ing. de Sistemas II5 Implementación de polimorfismo en Entity Beans Saco saco = new Saco(); saco.setNombre(Blasier Otoman Irregular 2 Bot.); saco.setOrigen(Turquia); saco.setColor(Beige); saco.setTalle(50); … Factura factura = new Factura(); factura.setFecha( ); factura.setTipo(B); … HashSet articulos = new HashSet(); articulos.add(saco); factura.setArticulos(articulos); Saco saco = new Saco(); saco.setNombre(Blasier Otoman Irregular 2 Bot.); saco.setOrigen(Turquia); saco.setColor(Beige); saco.setTalle(50); … Factura factura = new Factura(); factura.setFecha( ); factura.setTipo(B); … HashSet articulos = new HashSet(); articulos.add(saco); factura.setArticulos(articulos);

JEE Entity Enterprise Beans Consultas

2009Ing. de Sistemas II7 Consultas en Entity Beans Para poder hacer busquedas de entidades existentes, necesitamos algún método de busqueda –A travéz del Entity Manager –No debería utilizar un lenguaje propietario de una base de datos en particular Para poder desarrollar aplicaciones portables –Las busquedas deberían ser sobre el modelo de objetos No sobre el modelo físico en la BD EJB3 soporta su propio lenguaje de consultas para Entity Beans –Ejecutado a travéz del Entity Manager –Basado en una versión de SQL estándar y portable EJB QL 3.0 –Todas las consultas son sobre las clases que comprende el modelo de objetos

2009Ing. de Sistemas II8 Consultas en Entity Beans: EJB QL 3.0 EJBQL 3.0 es un lenguaje basado en SQL ANSI Soporta consultas complejas –Agregación –Subselects –Group By, Having, Joins

2009Ing. de Sistemas II9 Consultas en Entity Beans: EntityManager API del EntityManager: –Creación, Actualización y Eliminación de instancias –Selección de instancias según la PK –Selección de instancias según consultas public interface EntityManager { public void persist(Object entity); // inserción public T merge(T entity); // actualización public void remove(Object entity); // eliminación public Object find(String entityName, Object primaryKey); // selección por PK public T find(Class entityClass, Object primaryKey); // --´´-- public void flush(); // sincronizar con BD public Query createQuery(String ejbqlString); // crear una consulta de selección public Query createNamedQuery(String name); // crear una consulta de selección por nombre public Query createNativeQuery(String sqlString); // crear una consulta de selección nativa public void refresh(Object entity); // sincronizar desde la BD... } public interface EntityManager { public void persist(Object entity); // inserción public T merge(T entity); // actualización public void remove(Object entity); // eliminación public Object find(String entityName, Object primaryKey); // selección por PK public T find(Class entityClass, Object primaryKey); // --´´-- public void flush(); // sincronizar con BD public Query createQuery(String ejbqlString); // crear una consulta de selección public Query createNamedQuery(String name); // crear una consulta de selección por nombre public Query createNativeQuery(String sqlString); // crear una consulta de selección nativa public void refresh(Object entity); // sincronizar desde la BD... }

2009Ing. de Sistemas II10 Consultas en Entity Beans: Ejecutar Consultas Las consultas se expresan como cadenas de EJBQL –Embebidas en el código –Externamente en metadata (named queries) Se ejecutan a travéz de la interface Query –Encapsula la consulta –Interfaz para asociar parámetros de ejecución –Control de paginado public List buscarArticuloPorNombre(String nombre) { return em.createQuery( "SELECT a FROM Articulo a WHERE a.nombre LIKE :nombreArt").setParameter(" nombreArt ", nombre).setMaxResults(10).getResultList(); } public List buscarArticuloPorNombre(String nombre) { return em.createQuery( "SELECT a FROM Articulo a WHERE a.nombre LIKE :nombreArt").setParameter(" nombreArt ", nombre).setMaxResults(10).getResultList(); } Creación de la consulta en código Declaración de parámetros Control de Paginación Asociación de parámetros Ejecución de Consulta

2009Ing. de Sistemas II11 Consultas en Entity Beans: Ejecutar Consultas Query API –Acceso a travéz del EntityManager // Interface para ejecutar consultas public interface Query { // Ejecuta la consulta y retorna el resultado como una Lista de Objetos public List getResultList(); // Ejecuta una consulta que retorna un resultado único (ej: select max()) NonUniqueResultException si hay más de un resultado public Object getSingleResult(); // Declara el máximo numero de instancias a retornar public Query setMaxResults(int maxResult); // Asocia una variable a un parámetro en la consulta public Query setParameter(String name, Object value);... // Interface para ejecutar consultas public interface Query { // Ejecuta la consulta y retorna el resultado como una Lista de Objetos public List getResultList(); // Ejecuta una consulta que retorna un resultado único (ej: select max()) NonUniqueResultException si hay más de un resultado public Object getSingleResult(); // Declara el máximo numero de instancias a retornar public Query setMaxResults(int maxResult); // Asocia una variable a un parámetro en la consulta public Query setParameter(String name, Object value);...

2009Ing. de Sistemas II12 Consultas en Entity Beans: Ejemplos SELECT f FROM FACTURA f –Para identificar los objetos se utilizan Alias, el uso de AS para definir el alias es optativo SELECT f FROM FACTURA AS f –Retorna todas las instancias de Factura. SELECT f FROM FACTURA f WHERE f.monto > 100 –Retorna todas las instancias de Factura que tengan un valor mayor a 100 en su campo monto. SELECT f FROM FACTURA f WHERE f.monto > 100 AND f.fecha BETWEEN AND –Retorna todas las instancias de Factura que tengan un valor mayor a 100 en su campo monto y una fecha entre el y el en su campo fecha. SELECT f FROM FACTURA f WHERE f.tipo = :tipoFact –Retorna todas las instancias de Factura que tengan un valor igual al paremetro tipoFact en su campo tipo

2009Ing. de Sistemas II13 Consultas en Entity Beans: Ejemplos SELECT f FROM FACTURA f, IN (f.articulos) AS a WHERE a.origen = Turquia –Una consulta puede navegar relaciones –Retorna todas las instancias de Factura que tengan en su lista de Articulos, un articulo con el valor Turquia en su origen. SELECT f FROM FACTURA f WHERE f.cliente.pais = ARG –Una consulta puede navegar relaciones –Retorna todas las instancias de Factura que tengan una relacion con un objeto Cliente y este tenga un valor igual a ARG en su campo pais. SELECT a FROM ARTICULO a –Uso de polimorfismo en consultas. –Retorna todas las instancias de Articulo e instancias de subclases de Articulo (ej: Saco, Pantalon, etc.).

2009Ing. de Sistemas II14 Referencias Enterprise JavaBeans Query Languaje – fcs/doc/EJBQL.html