Beruflich Dokumente
Kultur Dokumente
"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.
Conecta Java con PostgreSQL mediante los servicios de conexin en PostgreSQL y Java.
Actitud
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
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.
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.
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)
Para lograr que los datos persistan, necesitamos primero crear un fichero del tipo esquema de base de datos
antes de crear las clases entidad.
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 sta pantalla registramos los datos de nuestro motor de base de datos. En mi caso
Host: localhost Port: 5432
Database: BDPEDIDOS
Al hacer click en Test Connection, nos debe mostrar el mensaje de "Connection suceeded" y click en siguiente
(Imagen 10)
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)
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.
Anticlick en el nuevo paquete y vamos a New - Entity Class from Database (Imagen 2)
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.
@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.
notacin @id.
@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/
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.
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 represent las estructuras relacionales de una base de datos en Java, mediante el motor de persistencia.
Meta cognicin
Te invito a que respondas las siguientes preguntas y reflexiones sobre lo aprendido para que identifiques tus
habilidades y esfuerzo intelectual.
De la temtica abordada cmo puedes definir Persistencia de datos con tus propias palabras?