Sie sind auf Seite 1von 6

Semana 2: Mapeamos objetos en Java para la persistencia de datos

"Medir el progreso en un proyecto de programacin por lneas de cdigo es como medir la construccin de un
aeroplano por su peso". Bill Gates Cmo estn? Nos encontramos en la segunda semana de aprendizaje en
la que haremos una aplicacin sencilla en Java y la conectaremos con PostgreSQL mediante JDBC, la
representacin de estructuras relacionales en clases Java, mediante el concepto de persistencia de datos.

Introduccin al Tema
En sta semana se conecta a Java con PostgreSQL, mediante el driver JDBC y se desarrolla la temtica de
Persistencia de datos centrndose en la representacin de las estructuras relacionales en Java, es decir el
trasladar el modelo de base de datos relacional a Java y en hacer que cada tabla de la base de datos se
represente mediante una clase en Java.

Aprendizajes esperados: Capacidad / Actitudes


Capacidad

Conecta Java con PostgreSQL mediante los servicios de conexin en PostgreSQL y Java.

Representa estructuras relacionales en Java.

Representa las entidades de la base de datos en clases en Java.

Actitud

Demuestra inters y participa en la ejecucin de representacin de las estructuras relacionales en


Java.

Participa en la representacin de las entidades de la base de datos en clases en Java.

Mapa conceptual referido al tema


2.1 Conexin de Java con Postgresql.
2.1.1 Servicio de BD en PostgreSQL
Como vimos en el tema anterior, PostgreSQL, ofrece un servicio de base de datos robusta, en el
almacenamiento de los datos, su fcil interaccin con los lenguajes permite una utilizacin completa.

2.1.2 JDBC: Java Database Conectivity


JDBC (Java Database Connectivity), es el API para la conexin a bases de datos desde el lenguaje Java, lo
que nos permite ejecutar operaciones sobre bases de datos, realizando estas operaciones con lenguaje SQL
de la base de datos OFTC, 2008.

Para realizar esta conexin aparte de conocer el lenguaje Java y tener todo lo necesario para compilar y
ejecutar programas en este lenguaje, necesitamos tener instalado el driver JDBC en nuestra PC.

2.1.3 JPA
JPA o Java Persistence API es el standard de Java encargado de automatizar dentro de lo posible la
persistencia de nuestros objetos en base de datos. Para ello, combina ideas y conceptos de los principales
frameworks de persistencia, como Hibernate, Toplink y JDO. El mapeo objeto-relacional (es decir, la relacin
entre entidades Java y tablas de la base de datos) se realiza mediante anotaciones en las propias clases de
entidad. Cecilio, 2013.

Pero para entender JPA, tendremos que tener claro el concepto "persistencia"
La persistencia o el almacenamiento permanente, es una de las necesidades bsicas de cualquier sistema de
informacin de cualquier tipo. En primer lugar, se propuso que el programa tratara los datos haciendo
consultas directas a la base de datos. Despus, se propuso trabajar con objetos, pero las bases de datos
tradicionales no admiten esta opcin.
Debido a esta situacin, aparecieron los motores de persistencia, cuya funcin es traducir entre los dos
formatos de datos: de registros a objetos y de objetos a registros. Persistir objetos Java en una base de datos
relacional implica serializar un rbol de objetos Java en una base de datos de estructura tabular y viceversa.
Esencial es la necesidad de mapear objetos Java para optimizar velocidad y eficiencia de la base de datos

2.2 Mapeo Objeto - Relacional en Java.


Es una tcnica en la que se las tablas, columnas y relaciones de una base de datos se convierten a clases,
atributos y tipos de datos de un lenguaje de programacin orientado a objetos, creando una base de datos
virtual.

Esto nos permiten trabajar con objetos, en vez de tablas y columnas, donde un registro en una tabla se
representa por una instancia de la entidad. Este mapeo permite generar automticamente el cdigo SQL
necesario para consultar y actualizar la base de datos.

La persistencia permite al programador almacenar, transferir y recuperar informacin entre los objetos y las
Bases de Datos, segn el mapeo creado.

Utiliza un motor que busca solucionar la diferencia entre los modelos de manipulacin de datos del Lenguaje
de Programacin y el manejador de Base de Datos. Por ejem. Hibernate, JDO.

2.2.1 Representacin de las estructuras relacionales en clases Java.


Netbeans se conecta al sistema gestor de la base de datos y recupera el esquema para obtener su
estructura. Al finalizar tendremos un fichero que describe en un lenguaje formal la estructura de la base de
datos

Para comenzar, tenemos que incluir la librera JDBC de PostgreSQL, y establecer la conexin. Se da por
hecho que ya ejecutaron el script de la base de datos pedidos. de la siguiente manera.

Primero creamos un proyecto en NetBeans que lo llamaremos ProyectoPedidos (Imagen 1 y 2)

Luego agregaremos la biblioteca JDBC, haciendo anticlick al proyecto e ir a propiedades, nos mostrar una
pantalla como la que se muestra a continuacin, luego click en Add Library y elegir la librera de PostgreSQL
JDBC Driver (Imagen 3)

Finalmente damos click en OK

Para lograr que los datos persistan, necesitamos primero crear un fichero del tipo esquema de base de datos
antes de crear las clases entidad.

Anticlick al proyecto, seleccionar Nuevo - otro (Imagen 4)

Luego ir la categora persistencia y seleccionar esquema de base de datos y click en siguiente (Imagen 5)

Luego, le damos un nombre a nuestro esquema de base de datos por ejemplo: PostgreSQLesquema y click
en siguiente (Imagen 6)

Ahora seleccionamos la conexin o creamos una, en ste caso crearemos una nueva conexin.
Seleccionamos nueva conexin de base de datos. Click en siguiente (Imagen 7).

En driver seleccionamos el de PostgreSQL y adjuntamos el Driver JDBC y click en siguiente (Imagen 8 y 9)

En sta pantalla registramos los datos de nuestro motor de base de datos. En mi caso
Host: localhost Port: 5432

Database: BDPEDIDOS

User Name: postgres (usuario de PostgreSQL)

Password: 123456 (contrasea de PostgreSQL)

Al hacer click en Test Connection, nos debe mostrar el mensaje de "Connection suceeded" y click en siguiente
(Imagen 10)

Seleccionamos public. Click en siguiente (Imagen 11)

Nos mostrar la siguiente ventana y clik en Finish (Imagen 12)

Volvemos a la ventana anterior, seleccionamos la conexin que hemos hecho y click en next (Imagen 13)

En la siguiente ventana nos mostrar todas las tablas de nuestra base de datos, damos click en add all y click
en Finish (Imagen 14)

Finalizando ya tenemos la estructura de la base de datos en Java (Imagen 15)

2.2.2 Clases entidades: clases y relaciones


Java define un modelo de programacin de persistencia por el cual nosotros tenemos q proporcionarle al
motor de persistencia una clase entidad por cada tabla de la base de datos.

Entidad: objeto que contiene informacin de mapeo que viven a corto plazo en memoria y persistentemente
en base de datos.

Al conjunto de entidades asociadas por los registros de una base de datos, se le conoce como contexto de
persistencia. La aplicacin maneja entidades del contexto de Persistencia, cualquier cambio que hagamos en
esas entidades se trasladar automticamente a la base de datos subyacente.

Vamos utilizar el asistente de netbeans para crear las clases entidad a partir del esquema de base de datos.

Vamos a crear un nuevo paquete llamado ClasesEntidad (Imagen 1)

Anticlick en el nuevo paquete y vamos a New - Entity Class from Database (Imagen 2)

Seleccionamos el esquema creado (Imagen 3)

Seleccionamos las tablas que queremos mapear en este caso todad click en Add all y en next (Imagen 4).

En la siguiente pantalla podremos modificar el nombre de las clases si deseamos para reconocer a cual tabla
corresponde.

Seleccionamos el paquete que creamos ClasesEntidad y seleccionamos con un check Create Persistence
Unit (Imagen 5)

Unidad de Persistencia es un fichero de configuracin que define un conjunto de clases de entidad que debe
manejar el gestor de entidades si nos olvidamos de checkear sto el motor de persistencia lo reconocer
como entidad y nos sincronizara con la base de datos subyacente, tambin tiene informacin del proveedor
de persistencia que utiliza (Imagen 4)
En la siguiente ventana, las opciones de mapeo las dejamos tal y como estn y click en Finish (Imagen 6)

Tras la creacin de las entidades damos por concluida la creacin de la capa de persistencia.

Descripcin del Mapeo de la Entidad Producto.

@Entity: sta notacin sirve para que la entidad sea reconocida como una entidad y no como un simple
objeto sin persistencia.

@Table: sta notacin sirve para indicar el nombre de la tabla con la que se mapear

la clase.

@Column: Es la notacin de las columnas, para mapear la clave primaria usamos la

notacin @id.

Mapear las relaciones

En sta tabla tenemos dos relaciones.

@JoinColumn(name = "idproveedor", referencedColumnName = "idproveedor") @ManyToOne: Denota la


relacin de uno a muchos con la tabla Proveedor, por parmetro se establece el atributo "idproveedor" que
corresponde a la tabla fornea.

@JoinColumn(name = "idcategoria", referencedColumnName = "idcategoria")

@ManyToOne: Denota la relacin de uno a muchos con la tabla Categoria, por parmetro se estblece el
atributo "idproveedor" que corresponde a la tabla fornea.

El resto del cdigo son simples mtodos de acceso y de transformacin pero podemos agregar mtodos de
validacin de atributos o de otra ndole menor, nunca debemos agregar mtodos que manipulen otras
entidades o que implementen lgica de negocio.

Tengamos en cuenta que el motor de persistencia se ejecuta fuera del contenedor EJEE por lo que no tienen
acceso a los servicios de seguridad. De este modo si tuvirmos lgica de negocio dentro de las entidades,
careceramos de las garantas que dan los componentes EJEE.

Referencias bibliogrficas
OFTC, 2008. JDBC: Conectar Java con PostgreSQL. Recuperado de:
http://linpox.wordpress.com/2008/05/23/jdbc-conectar-java-con-postgresql/

lvarez Caules, 2013. Ejemplo de JPA. Introduccin (I) Recuperado de:


http://www.arquitecturajava.com/ejemplo-de-jpa/

Lecturas recomendadas
Documento 1: " Acceso a base de datos Hibernate. 1era Parte

Direccin: 1 Acceso_a_base_de_datos_usando_Hibernate.pdf
Breve Descripcin: Este archivo pdf describe la implementacin del modelo de persistencia de objetos
en Java con Oracle. Describe las diferentes formas de persistencia en Java, centrndose en el modelo
de persistencia basado en bases de datos relacionales con JDBC. sta lectura ser una gua para la
implementacin de persistencia y mapeo, que hemos desarrollado en sta semana de aprendizaje.

Conclusiones de la primera semana


En sta semana se estableci el contexto para la

persistencia de datos en Java, definiendo a JDBC como el API para la conexin a la base de datos desde
Java y a JPA, como API para la persistencia y mapeo de datos.

Se realiz la conexin de Java con PostgreSQL, mediante el driver JDBC.

Se represent las estructuras relacionales de una base de datos en Java, mediante el motor de persistencia.

Se represent cada entidad de la base de datos en una clase en Java.

Se describi el mapeo de un entidad de nuestra base de datos.

Meta cognicin
Te invito a que respondas las siguientes preguntas y reflexiones sobre lo aprendido para que identifiques tus
habilidades y esfuerzo intelectual.

Tuviste dificultad con algn tema o actividad? Cmo los solucionaste?

Qu acciones realizaste para aprender?

De la temtica abordada cmo puedes definir Persistencia de datos con tus propias palabras?

Cul es para ti la utilidad de la Persistencia de datos en Java?

Das könnte Ihnen auch gefallen