PDF de programación - Desarrollo de un framework de Persistencia para tecnología Java: WayPersistence ORM

Imágen de pdf Desarrollo de un framework de Persistencia para tecnología Java: WayPersistence ORM

Desarrollo de un framework de Persistencia para tecnología Java: WayPersistence ORMgráfica de visualizaciones

Publicado el 23 de Junio del 2019
717 visualizaciones desde el 23 de Junio del 2019
10,4 MB
148 paginas
Creado hace 16a (14/01/2008)
PFC – Framework de Persistencia: WayPersistence ORM
Jorge Carneiro



Desarrollo de un framework de Persistencia para
tecnología Java: WayPersistence ORM

Jorge Carneiro Denis

Ingeniería Informática

Josep María Camps Riva

14 de Enero de 2008



© Jorge Carneiro Denis
Reservados todos los derechos. Está prohibida la reproducción total o parcial de esta obra por cualquier
medio o procedimiento, incluidos la impresión, la reprografía, el microfilm, el tratamiento informático o
cualquier otro sistema, así como la distribución de ejemplares mediante alquiler o préstamo, sin la
autorización escrita del autor o de los límites que autorice la Ley de Propiedad Intelectual.

Ingeniería Informática

Página 1 de 95

PFC – Framework de Persistencia: WayPersistence ORM
Jorge Carneiro



I. AGRADECIMIENTOS

A mi padre Manuel Carneiro, por ser de las personas que más me escucha y por haber
confiado en mí desde el principio. A mi madre, Ana Denis, por su apoyo, dedicación,
confianza durante toda mi vida, única persona por la que pondría la mano en el fuego.

A Carliña Portela, mi novia, por su paciencia, cariño, atención y ánimo tanto en la carrera
como en mis últimos años.

Sin ellos 3, esto no sería un hecho y no lograría llegar a donde estoy tanto a nivel personal
como profesional.

A mis hermanos, Ana y Manuel por estar ahí siempre y ayudarme en todo lo que pueden, a
mi hermana que tiene un corazón de oro ya mi hermano que siempre una visión distinta de
las cosas.

A la familia Portela Táboas, por sus opiniones, charlas, cafés, cenas y demás.

A Pedriño, mi mejor amigo, por su amistad, por siempre estar ahí, aunque ahora esté en
Los Ángeles, gracias.

A amigos como Ángel Iglesias, Jorge Giráldez, Fernando Rodríguez que siempre me
preguntan y se interesan por mí.

A los compañeros de trabajo que me han aportado ideas, opiniones y consejos,
principalmente a Rubén, Alberto y Miguel Callón.

Y a los profesores de la universidad, que han hecho posible alcanzar un nivel de
conocimientos suficiente para poder realizar este proyecto con todas las garantías.

A todos ellos, muchas gracias, os dedico este proyecto y os agradezco todo vuestro apoyo
de corazón, porque sin vosotros, nada sería igual.

No sueñes tu vida, vive tú sueño.



Ingeniería Informática

Página 2 de 95

PFC – Framework de Persistencia: WayPersistence ORM
Jorge Carneiro

II. RESUMEN

La implementación de un framework de persistencia para la tecnología Java requiere de un
estudio previo de los distintos motores de persistencia en la actualidad.

Para realizar un motor de persistencia en condiciones, primeramente, debemos saber los
requisitos mínimos que queremos implementar en nuestro framework porque depende de
las características y el soporte que queramos dar a nivel persistencia para hacer un
framework de mayor o menor magnitud.

Las características imprescindibles para cualquier framework desarrollado de forma
personalizada son: escalabilidad, multiplataforma, adaptabilidad a cualquier sistema gestor
de base de datos, válido para cualquier tipo de base de datos (relacional, en red, jerárquica,
etc.) y fácil manejo y simplicidad para el equipo de desarrollo. En nuestro "WayPersistence
v1.0" está validado para base de datos relacionales en un principio, mejorable en versiones
posteriores.

Un framework de persistencia debe asegurar el mapeo entre el modelo de datos relacional y
el modelo de datos orientado a objetos. Puesto que la mayor parte de las bases de datos de
hoy en día son relacionales, WayPersistence está orientado a mapear este tipo de base de
datos.

Para el mapeo con este ORM, tratamos de hacer una simetría entre el modelo de datos y el
modelo de objetos de forma que una tabla sea una clase, una columna - una propiedad, una
tupla o registro - una instancia, una relación entre tablas, una referencia a un objeto. Estos
son algunas de las particularidades que ofrece
WayPersistence.

El motor de persistencia WayPersistence se engloba en varios paquetes. Un directorio
principal, dataset, de donde cuelgan la mayor parte de los paquetes con las distintas
funcionalidades implementadas y desarrolladas en clases java.

Dentro de estos paquetes tenemos: dao, paquete com.way.persistence.dao donde
colocamos las clases de prueba o registros que serán mapeados en consonancia con el
modelo relacional de la base de datos. En este caso, tenemos Role.java, Empleado.java, etc.
que son clases java para mapear en relación con la base de datos definida en el sistema
gestor elegido, por defecto en el framework, MySQL.

El paquete database, com.way.persitence.database posee el mayor número de clases
desarrolladas con todos los tipos de datos utilizados por el framework y personalizados en
cada caso: CampoEntero, CampoCadena, CampoHora, etc. Este tipo de objetos son
subclases de ObjetoRaiz que a su vez extiende de MetaDato. Objetoraíz es la clase que
almacena valores del tipo CampoCadena,
CampoLong, CampoEntero. La clase MetaDato instancia objetos que serán utilizados en
RegistroInstancia. Complementando a estas dos clases genéricas,
tenemos a
RegistroInstancia que representa un registro individual en memoria que corresponde a una
fila de la base de datos o un registro insertado. Y RegistroMetaDato representa los
metadatos relacionados con el RegistroInstancia, nombre de la tabla y de los campos, en
este caso son metadatos referenciados desde esta clase a la clase descrita en líneas
anteriores, MetaDato.


Ingeniería Informática

Página 3 de 95

PFC – Framework de Persistencia: WayPersistence ORM
Jorge Carneiro
La clase abstracta SessionImpl es utilizada en este ORM para unir la sesión con el dataset y
las instancias de los registros. WayQuery es la principal clase de consultas y permite crear
instancias de WayQuery y actualizar cada una de los métodos, basado en el lenguaje SQL.

La clase Referencia representa las claves foráneas de un registro a otro en una base de
datos. Normalmente se especifican de una forma similar a la definición e foreign keys
como CONSTRAINT en una base de datos. En relación a los CONSTRAINT también
tenemos una clase CampoConstraint donde definimos las características de los campos
representados en la base de datos tales como: clave primaria, no nulo, bloqueos, etc.

Como complementos de esta sección del framework, database, tenemos ModoSelect,
ModoGenerator, ModoConsultas que nos permiten hacer filtrados y personalizar cada una
de las consultas en función del tipo de consulta, del filtrado de los campos, así como el
modo de las mismas.

Además, en database tenemos DataSet, una de las clases más importantes de este paquete
del framework. Su principal acometido es almacenar los registros de varios tipos juntos con
sus metadatos correspondientes. Estos registros son indexados con su base de datos
correspondiente a través de su clave primaria. El Dataset suele asociarse con una sesión
jdbc y accedemos al mismo a través de una clase que definiremos más adelante denominada
sessionJdbc.

Otro de los paquetes definidos en el framework es com.way.persistence.database.validation
que posee cuatro clases genéricas de validación para campo nulo, máxima longitud, mayor
o igual y una master para validaciones más generales. Este paquete será mejorado en
futuras versiones para darle más solvencia y fortaleza al ORM en lo que a validaciones se
refiere.

Por otra parte, tenemos el paquete, com.way.persistence.drivers que contiene los drivers
más comunes a utilizar para probar el ORM en esta versión 1.0. En este caso, hemos
optado por los drivers de los principales y más conocidos sistemas gestores de bases de
datos de la actualidad: MySQL (por defecto), Oracle, SqlServer, Informix y HSQL.

El corazón o espina dorsal de WayPersistence se define en el paquete siguiente,
com.way.persistence.engine, es el motor del ORM y junto con com.way.persistence.databse
son los dos paquetes fundamentales y más importantes del framework de acceso a datos.

En primer lugar, tenemos CargarDatos, que es una clase es utilizada para cargar los datos
de las distintas operaciones del patrón CRUD que se den, al utilizar este framework. Estas
operaciones básicas son la consulta, la inserción, el borrado y la actualización de tuplas de
una base de datos persistente a través de este framework de persistencia.

La clase Driver contiene dependencias a la base de datos. Los drivers definidos en el
paquete com.way.persistence.drivers dependen de este, es decir, extienden de esta clase
genérica Driver.

Generador es una clase que genera claves utilizando filas para separar las secuencias de la
tabla. Esta clase padre tiene varias clases hijas que extienden de esta que son: Generador
Inserciones, GeneradorSelectMax y GeneradorSequencia. En el primer caso, utiliza
columnas de la base de datos con sus valores y los añade a la base de datos cuando las filas

Ingeniería Informática

Página 4 de 95

seguimos

PFC – Framework de Persistencia: WayPersistence ORM
Jorge Carneiro
son insertadas. El segundo, es un básico generador de consultas que seleccionan el
máximo.
El GeneradorSequencia es un método que genera secuencias para bases de datos que las
soporten, ejemplo Oracle.

En este paquete tan importante, tenemos además, MotorQuery que actúa como
gestionador o generador del SQL correspondiente e invocado por la clase WayQuery.

Por último, en este paquete, tenemos las dos clases más importantes de esta sección,
SesionJdbcInterna y SesionManager.
  • Links de descarga
http://lwp-l.com/pdf16174

Comentarios de: Desarrollo de un framework de Persistencia para tecnología Java: WayPersistence ORM (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad