You are on page 1of 39

FrameWorks de Persistencia Especializacin en Bases de Datos

UNIVERSIDAD PEDAGOGICA Y TECNOLOGICA DE COLOMBIA

2013
Msc. Germn Amzquita Becerra

Frameworks(1)
Proporcionan una visin general de la funcionalidad. Es una estructura de soporte para organizar y desarrollar. Mejorando la productividad a travs de la reutilizacin de cdigo. Puede incluir soporte de programas, bibliotecas y un lenguaje interpretado entre otros, para ayudar a desarrollar y unir los diferentes componentes de un proyecto. Un framework es un esquema (un esqueleto) para el desarrollo y/o la implementacin de una aplicacin. Los framework son soluciones completas que contemplan herramientas de apoyo a la construccin (ambiente de trabajo o desarrollo) y motores de ejecucin (ambiente de ejecucin).

Frameworks(2)
Los objetivos principales
Acelerar el proceso de desarrollo. Reutilizar cdigo ya existente
Promover buenas prcticas de desarrollo como el uso de patrones.

Frameworks(3) Ventajas
El programador no necesita plantear una estructura global de la aplicacin, sino que el framework proporciona un esqueleto el cual pude ser manipulado a libertad para desarrollo de una aplicacin. Facilita la colaboracin. Proporciona un cdigo estandarizado, con lo cual promueve buenas prcticas de desarrollo bajo esquemas definidos, y se mejora la forma de mantener los cdigos.

Es fcil encontrar herramientas como utilidades, libreras, que mejoran la productividad y explotacin del framework con lo cual se facilita cualquier desarrollo.

Frameworks(4). Desventajas
La dependencia del cdigo fuente de una aplicacin con respecto al framework. Si se desea cambiar de framework, la mayor parte del cdigo debe reescribirse.

La demanda de grandes cantidades de recursos computacionales tiende a generalizar la funcionalidad de los componentes, lo cual conlleva consecuencias tales como incluir demasiadas caractersticas, provocando una sobrecarga de recursos y complicando la usabilidad del framework.

Persistencia(1)
Es una caracterstica que permite a un objeto existir ms all del tiempo de vida del programa que lo instancia.
Transitorios: El tiempo de vida depende directamente del mbito de la funcin que los instanci (o del programa en caso de ser globales). Persistentes: Es almacenado en un medio secundario para su posterior reconstruccin y utilizacin, por lo que su tiempo de vida es independiente del programa que los instanci.

Persistencia(2).
La persistencia permite al programador almacenar, transferir y recuperar el estado de los objetos.
Serializacin. Motores de persistencia Bases de datos orientadas a objetos Bases de datos relacionales.

MODELO VISTA CONTROLADOR (MODEL-VIEW-CONTROLLER)(1)


El modelo Vista Controlador es un patrn de arquitectura de software que separa los datos de una aplicacin, la interfaz de usuario y la lgica de control, con lo cual se puede reutilizar componentes fcilmente.

MODELO VISTA CONTROLADOR (MODEL-VIEW-CONTROLLER)(2)


Modelo:
Control de acceso a la aplicacin. Es el encargado de acceder a la capa de almacenamiento. (independiente del sistema de almacenamiento). Tambin es el encargado de definir las reglas del negocio.

MODELO VISTA CONTROLADOR (MODEL-VIEW-CONTROLLER)(3)


Controlador:
Recibe los eventos de entrada (clicks, una cambio en una campo de texto, etc.) Contiene reglas de gestin de eventos, definidas como Si evento X, entonces accin Y, como por ejemplo la llamada a un mtodo actualizar.

MODELO VISTA CONTROLADOR (MODEL-VIEW-CONTROLLER)(4)


Vista: La principal funcionalidad de la vista es recibir los datos del modelo y mostrarlo al usuario.

MODELO VISTA CONTROLADOR(5) Ventajas


Desacopla las vistas de los modelos. Las vistas proveen mayor flexibilidad y agilidad, ya que se puede crear mltiples vistas de un modelo. Las vistas pueden anidarse. Se puede cambiar el modo en que una vista responde al usuario sin cambiar su representacin visual. Mayor facilidad para el desarrollo de RIAs (Rich Internet Aplications). Ms claridad de diseo. Facilita el mantenimiento. Mayor escalabilidad

FrameWorks de Persistencia

Framework de persistencia

Es un Middleware Mueve los datos desde y a el almacenamiento permanente de datos. Gestiona la base de datos y los objetos

Frameworks de persistencia
Hibernate iBATIS SQL Maps OJB Torque Entity framework .NET Cayenne: Professional Object Relational Mapping. TJDO Jaxor JDBM pBeans Simple ORM Java Ultra-Lite Persistence (JULP)

JPOX Java Persistent Objects Smyle Speedo XORM JDBCPersistence Persistent Applications Toolkit (PAT)

Evolucin de los frameworks

Dependiente de la base de datos

Evolucin de los frameworks

Independencia de la base de datos

Comparacin Clases vs Tablas


public class Estudiante{ String nombre; int numero; String nombreColegio; } Create table estudiante( nombre varchar(30), numero int primary key, nombre_colegio varchar (30) );

Diferencias.
Programacin orientada a objetos Herencia Nuevos tipos de datos son objetos identidad con: ==, or, equals() Base de datos relacional No herencia Establecidos por la base de datos Primary key

Asociacin usando composicin y Asociacin usando relaciones agregacin foreign key

HIBERNATE

Hibernate

Es un ORM(Object Relational Mapping) para habilitar la persistencia del POJOs (Plain Old Java Object)
Trabaja sin estar limitar al modelo de datos relacional. (Crear base de datos orientada a objetos)

Crear objetos persistentes siguiendo los conceptos de Programacin O.O.


Asociacin, Herencia, Polimorfismo, Composicin API de colecciones para muchas relaciones

Se trabaja con objetos, no con registros y columnas de tablas. (entidad relacin objeto >>> entidad relacin)

Arquitectura Hibernate

Java Transaction API(JTA) Java Naming and Directory Interface (JNDI

Hibernate Ventajas
Hibernate mapea clases de Java a tablas de bases de datos utilizando archivos XML . Proporciona API para almacenar y recuperar objetos Java directamente hacia y desde la base de datos.

Si hay cambios en la base de datos o en alguna tabla, lo nico es cambiar el archivo XML.
Esconde los tipos de datos de SQL y proporcionan objetos Java. Hibernate no requiere un servidor de aplicaciones para operar.

Maneja las asociaciones complejas de los objetos de la base de datos.


Minimiza el acceso a la base de datos con las estrategias. Proporciona simple consulta de datos. Soporta bases de datos: HSQL Database Engine, DB2/NT, MySQL PostgreSQL, FrontBase, Oracle, Microsoft SQL Server Database, Sybase SQL Server, Informix Dynamic Server http://www.tutorialspoint.com/hibernate/hibernate_quick_guide.htm

Porque utilizar Hibernate


Permite a los desarrolladores centrarse en el modelamiento de dominio. Performance.
Cach de objeto de alto rendimiento. Configurable las formas de cmo planear estrategias de persistencia.

Sofisticadas facilidades para las consultas


Criteria API Query By Example (QBE) Hibernate Query Lenguage (HQL) Native SQL

CASO DE PRUEBA

CONFIGURACIN DE BASE DE DATOS DE HIBERNATE


Archivo: hibernate.cfg.xml.
Permite que genere un SQL optimizado para una base de datos relacional en particular.

CONFIGURACIN DE BASE DE DATOS DE HIBERNATE


hibernate.dialect hibernate.show_sql hibernate.format_sql hibernate.default_schema hibernate.default_catalog hibernate.session_factory_name hibernate.max_fetch_depth hibernate.default_batch_fetch_size hibernate.default_entity_mode hibernate.order_updates hibernate.generate_statistics hibernate.use_identifier_rollback hibernate.use_sql_comments hibernate.id.new_generator_mappings hibernate.jdbc.fetch_size hibernate.jdbc.batch_size hibernate.jdbc.batch_versioned_data hibernate.jdbc.factory_class hibernate.jdbc.use_scrollable_resultset hibernate.jdbc.use_streams_for_binary hibernate.jdbc.use_get_generated_keys hibernate.connection.provider_class hibernate.connection.isolation hibernate.connection.autocommit hibernate.connection.release_mode hibernate.connection.<propertyName> hibernate.jndi.<propertyName> hibernate.cache.provider_class hibernate.cache.use_minimal_puts hibernate.cache.use_query_cache hibernate.cache.use_second_level_cache hibernate.cache.query_cache_factory hibernate.cache.region_prefix hibernate.cache.use_structured_entries hibernate.cache.default_cache_concurrency_strategy hibernate.transaction.factory_class hibernate.transaction.manager_lookup_class hibernate.transaction.flush_before_completion hibernate.transaction.auto_close_session hibernate.current_session_context_class hibernate.query.factory_class hibernate.query.substitutions hibernate.hbm2ddl.auto hibernate.hbm2ddl.import_files hibernate.bytecode.use_reflection_optimizer hibernate.bytecode.provider

Creacin de proyecto

Diagrama de clases Acorde a la lgica

Entity como objetos de transporte ( get y set )

Archivo XML de Mapeo


Estructura jerrquica Fcil de manejar Libre de cdigo de Java

Mapeo de atributos

Ingeniera inversa

Creacin del mapeo con POJOs

Mapeo de Enferemedad

HIBERNATEUTIL

HIBERNATEUTIL

TestEnfermedad

You might also like