SlideShare una empresa de Scribd logo
1 de 27
Prerrequisitos
Para realizar este ejemplo sencillo ,voy a utilizar el IDE Netbeans versión 6.8 por
que es la versión que tengo instalada en mi maquina, aunque también pueden
realizar esta configuración en versiones 6.0 hacia arriba.
Y como motor de base de datos ,MySQL
Listo empecemos a configurar JPA!!!
Creación Base de datos
Para nuestro ejemplo, se necesita crear una base de datos de prueba, y una tabla
llamada PERSONAS.
Código SQL para crear la tabla
DROP TABLE IF EXISTS `pruebas`.`personas`;
CREATE TABLE `pruebas`.`personas`
( `id` int(11) NOT NULL AUTO_INCREMENT,
`nombres` varchar(255) NOT NULL,
`apellidos` varchar(255) NOT NULL,
`salario` double NOT NULL,
`edad` int(11) NOT NULL, PRIMARY KEY (`id`)
)
ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `pruebas`.`personas`;
CREATE TABLE `pruebas`.`personas`
( `id` int(11) NOT NULL AUTO_INCREMENT,
`nombres` varchar(255) NOT NULL,
`apellidos` varchar(255) NOT NULL,
`salario` double NOT NULL,
`edad` int(11) NOT NULL, PRIMARY KEY (`id`)
)
ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
Creando el Proyecto
Seleccionamos como plantilla “Java
Application” para realizar nuestra
consola de pruebas
Le agregamos un nombre a
nuestro proyecto,en este
caso sera “PersistenciaApp”
y le damos finish.
Archivos generados por el
IDE.
Nada raro aun
Creando y configurando unidad
de persistencia
Configurando Persistence Unit
Para iniciar la configuración de JPA en nuestro proyecto lo primero que debemos
hacer es crear el archivo persistence.xml ,para hacer esto miremos como se hace :
Click derecho sobre el proyecto,
New -> Other ->persistence->Persistence Unit
Configurando Persistence unit
Seleccionamos el nombre a nuestra
unidad de persistencia y también en
este apartado indicamos con que
ORM vamos a trabajar,Hibernate
para nuestro ejemplo.
Configuramos nuestra conexión a
nuestra base de datos
Configurando cadena de
conexión
Establecemos todos los parámetros de
conexión a nuestra base de datos.
Cuando este todo configurado
le damos FINISH
Configurando Persistence Unit
Luego de configurar la unidad de persistencia a
través de Netbeans, nos agregara en las
librerías todo lo necesario para usar JPA con
Hibernate,ademas crea la Carpeta META-INF y
le anexa el archivo de configuración
persistence.xml.
Creando una entidad
persistente
Creando una entidad
persistente
(Previamente he creado un paquete llamado com.model para
agrupar mis clases de negocio.)
Para crear una entidad persistente lo vamos hacer de una tabla
ya creada, en este caso ,la tabla Persona, para esto hacemos lo
siguiente :
Click derecho sobre el paquete com.model,luego
New -> Other ->persistence->EntityClasses
from Database
Creando una entidad
persistente
Seleccionamos nuestra cadena de
conexión creada previamente.
Son todas las tablas que nos arroja la conexión
Serán las tablas que se convertirán en clases persistentes. En este caso vamos
a convertir la tabla Personas a una clase persistente llamada Persona con sus
anotaciones.
Creando una entidad
persistente
Especificamos el nombre de nuestra
entidad y su localización
Configuramos las diferentes
opciones de mapeo como por
ejemplo el tipo de
asociaciones, con que interfaz
se manejaran las
colecciones,etc.
Creando una entidad
persistente
El resultado de este proceso es una clase con una serie de atributos anotados
y propiedades :
Creando un JPA Controller
Creando un JPA controller
(Previamente he creado un paquete llamado com.dao para agrupar mi
capa de acceso a datos .)
Para crear un controlador debemos hacer lo
siguiente :
Click derecho sobre el paquete com.dao,luego
New -> Other ->persistence->Jpa controller
classe from Entity classes
Creando un JPA controller
Seleccionamos la entidad
persistente a la que le vamos a
crear su controlador de acceso a
datos.
Le damos siguiente y Listo.
Creando un JPA controller
Luego de terminar de configurar nuestro controlador
,Netbeans nos genera un paquete nuevo llamado
com.dao.exceptions ,que serán las excepciones que
lanzara nuestro controlador en caso de que ocurra
un error.
(Métodos y atributos del controlador generado)
Agregar driver de conexión
Para terminar de configurar el proyecto faltaría por agregar el jar de conexión a
MYSQL
Veamos el resultado
En la vida real
No se si han dado cuenta, pero cuando netbeans nos genera un controlador, este
controlador en su constructor inicializa el motor de persistencia, es decir, sí creamos
varias instancias de este controlador se inicializa varias veces el motor haciendo
nuestra aplicación pesada y lenta.
Para resolver esto lo podemos hacer de varias formas : usando Spring,aplicando
patrón singleton en los controladores o centralizando el EntityManagerFactory en una
clase de utilerías.
Para este ejemplo usare una clase de utilería que me centralice el
entityMangerFactory.
Creando clase de utileria
Código fuente
package com.util;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
/**
*
* @author Ronald Cuello
*/
public class JpaUtil {
private static final EntityManagerFactory emf;
static{
try{
emf=Persistence.createEntityManagerFactory("PersistenciaAppPU");
}catch(Throwable t){
System.out.println("Error a inicializar el Entity Manager Factory "+t);
t.printStackTrace();
throw new ExceptionInInitializerError();
}
}
public static EntityManagerFactory getEntityManagerFactory(){
return emf;
}
}
package com.util;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
/**
*
* @author Ronald Cuello
*/
public class JpaUtil {
private static final EntityManagerFactory emf;
static{
try{
emf=Persistence.createEntityManagerFactory("PersistenciaAppPU");
}catch(Throwable t){
System.out.println("Error a inicializar el Entity Manager Factory "+t);
t.printStackTrace();
throw new ExceptionInInitializerError();
}
}
public static EntityManagerFactory getEntityManagerFactory(){
return emf;
}
}
Modificando controlador
Hacemos la corrección en el constructor por la clase que acabamos de crear
Listo eso es todo amigos……

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Connecting Connect with Spring Boot
Connecting Connect with Spring BootConnecting Connect with Spring Boot
Connecting Connect with Spring Boot
 
OpenStack DevStack Configuration localrc local.conf Tutorial
OpenStack DevStack Configuration localrc local.conf TutorialOpenStack DevStack Configuration localrc local.conf Tutorial
OpenStack DevStack Configuration localrc local.conf Tutorial
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismo
 
Herencia y Polimorfismo en Java
Herencia y Polimorfismo en JavaHerencia y Polimorfismo en Java
Herencia y Polimorfismo en Java
 
Les Servlets et JSP
Les Servlets et JSPLes Servlets et JSP
Les Servlets et JSP
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
 
Reporte Java con JasperReport
Reporte Java con JasperReportReporte Java con JasperReport
Reporte Java con JasperReport
 
Diapositivas sobre AWT
Diapositivas sobre AWTDiapositivas sobre AWT
Diapositivas sobre AWT
 
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
 
Ansible-cours .pdf
Ansible-cours .pdfAnsible-cours .pdf
Ansible-cours .pdf
 
Springboot Overview
Springboot  OverviewSpringboot  Overview
Springboot Overview
 
Spring Framework - Expression Language
Spring Framework - Expression LanguageSpring Framework - Expression Language
Spring Framework - Expression Language
 
Spring boot
Spring bootSpring boot
Spring boot
 
Spring Boot Tutorial
Spring Boot TutorialSpring Boot Tutorial
Spring Boot Tutorial
 
cours-gratuit.com--id-4422.pdf
cours-gratuit.com--id-4422.pdfcours-gratuit.com--id-4422.pdf
cours-gratuit.com--id-4422.pdf
 
Application Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & HibernateApplication Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & Hibernate
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Spring aop
Spring aopSpring aop
Spring aop
 
Spring ioc
Spring iocSpring ioc
Spring ioc
 

Similar a JPA en NetBeans

Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2
mtemarialuisa
 
Manual reportes jsp
Manual reportes jspManual reportes jsp
Manual reportes jsp
jujuju12
 
Unidad 9. acceso a base de datos desde java
Unidad 9. acceso a base de datos desde javaUnidad 9. acceso a base de datos desde java
Unidad 9. acceso a base de datos desde java
devsco63
 
Guia de my sql workbench 5 2
Guia de my sql workbench 5 2Guia de my sql workbench 5 2
Guia de my sql workbench 5 2
Eduardo Perdomo
 
Instalación de MySQL en dispositivos o pc
Instalación de MySQL en dispositivos o pcInstalación de MySQL en dispositivos o pc
Instalación de MySQL en dispositivos o pc
LU1HGFLU1HGF
 

Similar a JPA en NetBeans (20)

JPA en Netbeans
JPA en NetbeansJPA en Netbeans
JPA en Netbeans
 
Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2
 
instalacion y conexion a base de datos postgrest /java
instalacion y conexion a base de datos postgrest /javainstalacion y conexion a base de datos postgrest /java
instalacion y conexion a base de datos postgrest /java
 
Manual reportes jsp
Manual reportes jspManual reportes jsp
Manual reportes jsp
 
Trabajo de base de datos en sqlserver
Trabajo de base de datos en sqlserverTrabajo de base de datos en sqlserver
Trabajo de base de datos en sqlserver
 
Conexión de Base de Datos
Conexión de Base de DatosConexión de Base de Datos
Conexión de Base de Datos
 
Practica 4
Practica 4Practica 4
Practica 4
 
Entity Framework ó Linq SQL - Visual Studio 2012
Entity Framework  ó  Linq SQL - Visual Studio 2012Entity Framework  ó  Linq SQL - Visual Studio 2012
Entity Framework ó Linq SQL - Visual Studio 2012
 
Conexion del jpa con mysql
Conexion del jpa con mysqlConexion del jpa con mysql
Conexion del jpa con mysql
 
Mysql java
Mysql javaMysql java
Mysql java
 
Guia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando NetbeansGuia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando Netbeans
 
Instalación y Configuración de Pentaho BI y MySQL
Instalación y Configuración de Pentaho BI y MySQLInstalación y Configuración de Pentaho BI y MySQL
Instalación y Configuración de Pentaho BI y MySQL
 
Unidad 9. acceso a base de datos desde java
Unidad 9. acceso a base de datos desde javaUnidad 9. acceso a base de datos desde java
Unidad 9. acceso a base de datos desde java
 
Guia de my sql workbench 5 2
Guia de my sql workbench 5 2Guia de my sql workbench 5 2
Guia de my sql workbench 5 2
 
Instalación de MySQL en dispositivos o pc
Instalación de MySQL en dispositivos o pcInstalación de MySQL en dispositivos o pc
Instalación de MySQL en dispositivos o pc
 
Java
JavaJava
Java
 
P2C1 - Configuración del Entorno
P2C1 - Configuración del EntornoP2C1 - Configuración del Entorno
P2C1 - Configuración del Entorno
 
PHP - MYSQL
PHP - MYSQLPHP - MYSQL
PHP - MYSQL
 
Conexión a postgres desde
Conexión a postgres desdeConexión a postgres desde
Conexión a postgres desde
 
Toturial aplicacion base de datos jsp
Toturial aplicacion base de datos jspToturial aplicacion base de datos jsp
Toturial aplicacion base de datos jsp
 

Más de Manuel Antonio

Mule Cloud Connectors-Guardando y restaurando el estado o auth
Mule Cloud Connectors-Guardando y restaurando el estado o authMule Cloud Connectors-Guardando y restaurando el estado o auth
Mule Cloud Connectors-Guardando y restaurando el estado o auth
Manuel Antonio
 

Más de Manuel Antonio (20)

Mule Cloud-Conceptos
Mule Cloud-ConceptosMule Cloud-Conceptos
Mule Cloud-Conceptos
 
Mule Cloud Connectors-Guardando y restaurando el estado o auth
Mule Cloud Connectors-Guardando y restaurando el estado o authMule Cloud Connectors-Guardando y restaurando el estado o auth
Mule Cloud Connectors-Guardando y restaurando el estado o auth
 
Mule Cloud Connector-Personalizando Callback
Mule Cloud Connector-Personalizando CallbackMule Cloud Connector-Personalizando Callback
Mule Cloud Connector-Personalizando Callback
 
Mule Cloud Connectors-Configuracion OAuth1
Mule Cloud Connectors-Configuracion OAuth1Mule Cloud Connectors-Configuracion OAuth1
Mule Cloud Connectors-Configuracion OAuth1
 
Mule Cloud Connectors-Autorizando el conector
Mule Cloud Connectors-Autorizando el conectorMule Cloud Connectors-Autorizando el conector
Mule Cloud Connectors-Autorizando el conector
 
Mule Cloud Connectors-Configuracion OAuth
Mule Cloud Connectors-Configuracion OAuthMule Cloud Connectors-Configuracion OAuth
Mule Cloud Connectors-Configuracion OAuth
 
Mule Cloud Connector-Conectividad OAuth
Mule Cloud Connector-Conectividad OAuthMule Cloud Connector-Conectividad OAuth
Mule Cloud Connector-Conectividad OAuth
 
Mule cloud connectors1-conectores
Mule cloud connectors1-conectoresMule cloud connectors1-conectores
Mule cloud connectors1-conectores
 
Mule Cloud Connectors1-Conectores
Mule Cloud Connectors1-ConectoresMule Cloud Connectors1-Conectores
Mule Cloud Connectors1-Conectores
 
Mule Cloud Connectors-Instalacion
Mule Cloud Connectors-InstalacionMule Cloud Connectors-Instalacion
Mule Cloud Connectors-Instalacion
 
Mule Cloud Connectors-Conceptos Basicos
Mule Cloud Connectors-Conceptos BasicosMule Cloud Connectors-Conceptos Basicos
Mule Cloud Connectors-Conceptos Basicos
 
Mule cloud connectors versus el resto del mundo
Mule cloud connectors versus el resto del mundoMule cloud connectors versus el resto del mundo
Mule cloud connectors versus el resto del mundo
 
Problema Educativo Mexico
Problema Educativo MexicoProblema Educativo Mexico
Problema Educativo Mexico
 
NetBeans para Java, C, C++
NetBeans para Java, C, C++NetBeans para Java, C, C++
NetBeans para Java, C, C++
 
Serializacion Java
Serializacion JavaSerializacion Java
Serializacion Java
 
Mule Librerias en Java
Mule Librerias en JavaMule Librerias en Java
Mule Librerias en Java
 
Clases C#
Clases C#Clases C#
Clases C#
 
Array y Objects C#
Array y Objects C#Array y Objects C#
Array y Objects C#
 
Javascript C#
Javascript C#Javascript C#
Javascript C#
 
SQL en Visual Studio
SQL en Visual StudioSQL en Visual Studio
SQL en Visual Studio
 

Último

La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
JonathanCovena1
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
MiNeyi1
 

Último (20)

Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 

JPA en NetBeans

  • 1.
  • 2. Prerrequisitos Para realizar este ejemplo sencillo ,voy a utilizar el IDE Netbeans versión 6.8 por que es la versión que tengo instalada en mi maquina, aunque también pueden realizar esta configuración en versiones 6.0 hacia arriba. Y como motor de base de datos ,MySQL Listo empecemos a configurar JPA!!!
  • 3.
  • 4. Creación Base de datos Para nuestro ejemplo, se necesita crear una base de datos de prueba, y una tabla llamada PERSONAS.
  • 5. Código SQL para crear la tabla DROP TABLE IF EXISTS `pruebas`.`personas`; CREATE TABLE `pruebas`.`personas` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nombres` varchar(255) NOT NULL, `apellidos` varchar(255) NOT NULL, `salario` double NOT NULL, `edad` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1; DROP TABLE IF EXISTS `pruebas`.`personas`; CREATE TABLE `pruebas`.`personas` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nombres` varchar(255) NOT NULL, `apellidos` varchar(255) NOT NULL, `salario` double NOT NULL, `edad` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
  • 6.
  • 7. Creando el Proyecto Seleccionamos como plantilla “Java Application” para realizar nuestra consola de pruebas Le agregamos un nombre a nuestro proyecto,en este caso sera “PersistenciaApp” y le damos finish. Archivos generados por el IDE. Nada raro aun
  • 8. Creando y configurando unidad de persistencia
  • 9. Configurando Persistence Unit Para iniciar la configuración de JPA en nuestro proyecto lo primero que debemos hacer es crear el archivo persistence.xml ,para hacer esto miremos como se hace : Click derecho sobre el proyecto, New -> Other ->persistence->Persistence Unit
  • 10. Configurando Persistence unit Seleccionamos el nombre a nuestra unidad de persistencia y también en este apartado indicamos con que ORM vamos a trabajar,Hibernate para nuestro ejemplo. Configuramos nuestra conexión a nuestra base de datos
  • 11. Configurando cadena de conexión Establecemos todos los parámetros de conexión a nuestra base de datos. Cuando este todo configurado le damos FINISH
  • 12. Configurando Persistence Unit Luego de configurar la unidad de persistencia a través de Netbeans, nos agregara en las librerías todo lo necesario para usar JPA con Hibernate,ademas crea la Carpeta META-INF y le anexa el archivo de configuración persistence.xml.
  • 14. Creando una entidad persistente (Previamente he creado un paquete llamado com.model para agrupar mis clases de negocio.) Para crear una entidad persistente lo vamos hacer de una tabla ya creada, en este caso ,la tabla Persona, para esto hacemos lo siguiente : Click derecho sobre el paquete com.model,luego New -> Other ->persistence->EntityClasses from Database
  • 15. Creando una entidad persistente Seleccionamos nuestra cadena de conexión creada previamente. Son todas las tablas que nos arroja la conexión Serán las tablas que se convertirán en clases persistentes. En este caso vamos a convertir la tabla Personas a una clase persistente llamada Persona con sus anotaciones.
  • 16. Creando una entidad persistente Especificamos el nombre de nuestra entidad y su localización Configuramos las diferentes opciones de mapeo como por ejemplo el tipo de asociaciones, con que interfaz se manejaran las colecciones,etc.
  • 17. Creando una entidad persistente El resultado de este proceso es una clase con una serie de atributos anotados y propiedades :
  • 18. Creando un JPA Controller
  • 19. Creando un JPA controller (Previamente he creado un paquete llamado com.dao para agrupar mi capa de acceso a datos .) Para crear un controlador debemos hacer lo siguiente : Click derecho sobre el paquete com.dao,luego New -> Other ->persistence->Jpa controller classe from Entity classes
  • 20. Creando un JPA controller Seleccionamos la entidad persistente a la que le vamos a crear su controlador de acceso a datos. Le damos siguiente y Listo.
  • 21. Creando un JPA controller Luego de terminar de configurar nuestro controlador ,Netbeans nos genera un paquete nuevo llamado com.dao.exceptions ,que serán las excepciones que lanzara nuestro controlador en caso de que ocurra un error. (Métodos y atributos del controlador generado)
  • 22. Agregar driver de conexión Para terminar de configurar el proyecto faltaría por agregar el jar de conexión a MYSQL
  • 24. En la vida real No se si han dado cuenta, pero cuando netbeans nos genera un controlador, este controlador en su constructor inicializa el motor de persistencia, es decir, sí creamos varias instancias de este controlador se inicializa varias veces el motor haciendo nuestra aplicación pesada y lenta. Para resolver esto lo podemos hacer de varias formas : usando Spring,aplicando patrón singleton en los controladores o centralizando el EntityManagerFactory en una clase de utilerías. Para este ejemplo usare una clase de utilería que me centralice el entityMangerFactory.
  • 25. Creando clase de utileria
  • 26. Código fuente package com.util; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; /** * * @author Ronald Cuello */ public class JpaUtil { private static final EntityManagerFactory emf; static{ try{ emf=Persistence.createEntityManagerFactory("PersistenciaAppPU"); }catch(Throwable t){ System.out.println("Error a inicializar el Entity Manager Factory "+t); t.printStackTrace(); throw new ExceptionInInitializerError(); } } public static EntityManagerFactory getEntityManagerFactory(){ return emf; } } package com.util; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; /** * * @author Ronald Cuello */ public class JpaUtil { private static final EntityManagerFactory emf; static{ try{ emf=Persistence.createEntityManagerFactory("PersistenciaAppPU"); }catch(Throwable t){ System.out.println("Error a inicializar el Entity Manager Factory "+t); t.printStackTrace(); throw new ExceptionInInitializerError(); } } public static EntityManagerFactory getEntityManagerFactory(){ return emf; } }
  • 27. Modificando controlador Hacemos la corrección en el constructor por la clase que acabamos de crear Listo eso es todo amigos……