Академический Документы
Профессиональный Документы
Культура Документы
JPA
http://www.oracle.com/technetwork/articles/javaee/jpa-137156.html
JPA o Java Persistence API es un framework de Java EE que permite gestionar la información almacenada en
sistemas gestores de bases de datos relacionales desde Java, de una forma sencilla. Para ello, posee tres
elementos de programación:
@NamedQueries({
@NamedQuery(name = "Producto.findById", query = "SELECT p FROM Producto p
WHERE p.id = :id")
})
Entre las implementaciones más conocidas de la especificación de JPA (JSR-317) están: TopLink, EclipseLink,
OpenJPA, DataNucleus e Hibernate.
Figura 37. Comparativa de rendimiento entre JPA e Hibernate con MySQL. Fuente: http://www.jpab.org
A continuación se detallarán las acciones para incorporar JPA mediante EclipseLink a nuestro proyecto Java.
1. Creación de la base de datos. Este paso es muy importante, ya que las tablas definidas representarán la
estructura de nuestros futuros objetos Java.
2. Creación de las entidades. Las entidades son Java Beans asociados a una tabla que representarán
nuestra lógica de objetos. Mediante la opción de menú New file… se creará una entidad (Entity Class)
desde la base de datos. De esta forma, la nueva entidad tendrá la misma estructura que la declaración
de la tabla. La base de datos de la cual se desean obtener las entidades puede estar vinculada
previamente con Netbeans (ver Figura 40) o crear la conexión en esta misma pantalla.
Figura 39. Creación de la entidad desde la base de datos. Paso 1 de 4.
El resto de pasos para la creación de las entidades es trivial, dejando habilitadas las opciones por defecto.
En las clases generadas de forma automática se puede observar cómo mediante las anotaciones se definen las
consultas JPQL y se establecen los vínculos entre el diseño relacional y el orientado a objetos.
Figura 42. Entidad generada automáticamente para la tabla Producto
3. Creación de una Unidad de Persistencia. La información de conexión con la base de datos se almacena
en un fichero denominado persistence.xml. Éste es creado automáticamente y no requiere ser
modificado para su correcto funcionamiento inicial.
Al finalizar el proceso de creación de las Entidades y la Unidad de Persistencia, se puede observar cómo
automáticamente se han incorporado las librerías del framework.
4. Creación del objeto de acceso a datos. Creación del objeto EntityManager para la manipulación de la
base de datos. En el siguiente código de ejemplo se puede observar como a diferencia del código JDBC,
se prescinde la de la utilización de SQL (se invoca las sentencias JPQL declaradas en cada entidad). Como
elementos personalizables a destacar, están:
a. La especificación de la Unidad de Persistencia para la creación del objeto EntityManager:
CarritoCompraDWRJPAPU
b. La especificación de la consulta deseada, declarada en la entidad: Producto.findById,
Producto.findAll, etc. mediante la utilizació de un objeto Query.
c. Creación de transacciones: EntityTransaction.
d. Inserción de objetos mediante el método persist(Object).
package dao;
import dominio.Producto;
import java.util.Collection;
import java.util.Iterator;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.Query;
public DAOPersona ()
{
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("CarritoCompraDWRJPAPU");
em = emf.createEntityManager();
}