JPA (Java Persistence API): Es la API de persistencia de datos desarrollada para la plataforma Java EE.
Es un framework del lenguaje de programación Java que maneja datos relacionales en aplicaciones usando la Plataforma Java en sus ediciones Standard (Java SE) y Enterprise (Java EE).
El objetivo que persigue el diseño de esta API, es no perder las ventajas de la orientación a objetos al interactuar con una base de datos relacional, y permitir usar objetos regulares (conocidos como POJOs --> un POJO es una palabra utilizada por programadores Java para enfatizar el uso de clases simples y que no dependen de un framework en especial).
Referencia:
http://es.wikipedia.org/wiki/Java_Persistence_API
JPA fue creado con java EE5 para resolver el problema de persistencia de datos. JPA es una abstracción arriba de JDBC que hace posible ser independiente de SQL. Todas las clases y anotaciones de esta API están en el paquete javax.persistence.
Los principales componetes de JPA son:
- ORM, que es el mecanismo para mapear objetos a datos almacenados en una base de datos relacional.
- Un administrador de entidades realiza operaciones sobre una base de datos relacional, tal como crear leer, actualizar y eliminar.
- El Java Persistence Query Languaje (JPQL), te permite recuperar con un lenguaje orientado a objetos.
- Transacciones y mecanismos de bloqueos concurrente cuando acceden a datos proporcionados por Java Transaction API (JTA)
Ahora si vamos a crear nuestro proyecto con Netbeans 7.3, sino lo pueden hacer con Eclipse da igual para este pequeño ejemplo.
1) Crear una base de datos llamada ejemplo
2) Crear una tabla Innodb de nombre Persona con los siguientes datos.
3) Ahora vamos a crear una aplicación Java Standar Edition para ellos vamos al menú
File (Archivo) -->
New Project (Nuevo proyecto)
4) Eligen la ruta donde se guardará su proyecto.
5) Para poder realizar el enlace al motor de base de datos MySQL debemos incluir el JDBC, para ellos damos click derecho sobre la carpeta
Libraries (Librerías)
6) Debe salir ahora una pantalla igual a la que muestro, deben buscar el nombre
MySQL JDBC Driver
7) Ahora el proyecto debe quedar de la siguiente forma.
8) Ahora vamos a crear nuestra clase entidad y clase controladora. Para realizar esto y ordenar nuestro proyecto debemos crear dos paquetes de nombre Entidad y Control, entonces debemos dar click derecho sobre la carpeta
Source Packages (Ruta de paquetes).
(Repitan el mismo proceso para el paquete Control)
9) Ahora debemos crear nuestra clase entidad, para esto damos click derecho sobre el paquete entidad, elegimos el menú
New (Nuevo) -->
Entiti classes from database (Clases entidad a partir de una base de datos)
Ahora sólo deben seguir las imágenes
Luego presionan el botón
Next (Siguiente)
Ahora sólo deben configurar su conexión a su base de datos, en mi caso cambio la opción
Database con el valor
mysql y la cambio por la base de datos ejemplo.
Presionan luego a todo
Next (Siguiente) y luego presionan
Finish (Terminar)
10) Ahora debemos elegir las tablas para este ejemplo, elijo la tabla
Persona y presiono el botón
add (agregar)
Luego presionan el botón
Next (Siguiente) y les aparecerá la siguiente pantalla donde sólo deben presionar el botón
Finish (Terminar)
Podemos ver que Netbeans nos ha creado nuestra clase entidad con todas las anotaciones generales, entre ellas la más importante la anotación @Entity que le dice a la clase que es una clase entidad.
11) Ahora debemos crear nuestra clase Control, para esto debemos para esto damos click derecho sobre el paquete
Control y elegimos la opción
Other (Otro)
Elegimos la opción
Persistence (Persistencia) y elegimos la opción
JPA Controller Classes from Entity Classes (Clases controladoras JPA a partir de una clase entidad) y presionan el botón
Next (Siguiente)
Elegimos la única clase entidad, que en este ejemplo es Entidad.Persona y presionamos el botón
Add (Agregar) y presionamos el botón
Next (Siguiente) y luego
Finish (Terminar)
12) Así es como queda nuestro proyecto hasta el momento
13) Ahora mostramos el código como debe quedar nuestra clase.
Ya para terminar, yo no elegiría utilizar las clases hechas por el propio IDE por motivo que crea los métodos de manera ineficiente, por cada insert, update, delete realiza un begin y luego un commit o rollback.
Esto como sabemos sólo se debería hacer cuando sean dos o más transacciones.
Dejo una parte del código generado.
Nos vemos hasta la próxima su amigo Carlos Zacarías