SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
TUTORIAL JPA
RECORDEMOS EL OBJETIVO DEL EXAMEN FINAL
HACER VARIAS APLIACIONES O UNA APLAICION CON VARIOS MODULOS
Y CADA MODULO QUE GESTIONE LOS EMPLEADOS DE UN DEPARTAMENTO

La primera Opcion Collecciones y persistencia no usara bases de datos pero si persistencia de
Objetos
JPA usara el patrón de diseño Modelo Vista Control
DAO usara el patrón de diseño Data Access Objects y asi sucesivamente APEX Y ZATHURA Son
soluciones web.
En este Capitulo se dará un tutorial para Crear la aplicación
con bases de datos y JPA
Objetivo:
Crear un aplicación con las funcionalidades básicas para el el CRUD de las tablas Departamento y
Empleado. Usando la Persistencia JPA de JAVA (java Persistency Api)
El Scrip SQL para crear la base de datos Crea.SQL se anexa
En la primera parte se hara el CRUD para la tabla departamentos
INSTRUCCIONES

y debe tener los tres packages MODELO VISTA CONTROL
Incluya (copia) en el package Control las librerías de Oracle en mi caso ojdbc6.jar
Y adicione las librerías al proyecto

De click derecho sobre Libraries y elija Add JAR/Folder
Y busque el archivo jar y adicionelo.

De click derecho sobre MODELO y elija “Entity Classes fron database”
Elija la conneccion de Oracle si no esta debe crearla

Elija la Tablas Departamentos y presione next
Presione next /next y finish sin cambiar las opciones
El proyecto aparece ahora asi:

Se genero la unidad de persistencia (archivo xml) y la entidad (entity) Departamentos
Los cuales tienen esta presentación
Y este código XML

Donde el nombre mas imporante esta encerradon en le circulo en rojo EXFINALPROJPAPU
DepartamentosJpaController

Sobre CONTROL de Boton derecho del mouse y de new y elija
JPA Controller Classes fron Entity Classes como se muestra

Elija MODELO.Departamentos

Y presione next y luego Finish

Se genera
Y en esta clase se tienen todos estos métodos

Que permiten crear, modificar, eliminar departemntos y hacer algunas consutlas de información
Lo importante aquí es que las instrucciones para ahcer esto ya están inlcuidas y todos los procesos
con las base de datos
HAGAMOS UNA PRUEBA

Haga Un programa (class ) PruebaJPA1
Y meta este main

public static void main(String[] a) throws Exception {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("EXFINALPROJPAPU");
EntityManager em = emf.createEntityManager();
DepartamentosJpaController service = new DepartamentosJpaController (emf);
em.getTransaction().begin();
Integer codigodepto=13;
String nombredepto="RRHH";
Departamentos dep = new Departamentos();
dep.setCodigodepto(codigodepto);
dep.setNombredepto(nombredepto);
service.create(dep);
em.getTransaction().commit();
System.out.println("Persisted " + dep);
em.close();
emf.close();

Ejecutele

Debe salir

Y en la base de datos debe quedar creado el Departamento 13

RRHH
Bueno ya estamos listos para trabajar una interface Visual GUI para Departamentos

Cree esta ventana con un JDialog
Para poner funcionalidad (lógica ) al botón add
Dele doble click al botón add
Y digite este código

String scodigo="";
String nombre ="";
scodigo = jTextField1.getText();
nombre = jTextField2.getText();
if(DepartamentosTrBD.adicionar(scodigo, nombre)){
javax.swing.JOptionPane.showMessageDialog(this, "REGISTRO ADICIONADO");
}
else{
javax.swing.JOptionPane.showMessageDialog(this, "NO SE PUDO ADICIONAR");
}

Observe la clase resaltada no ha sido creada ni por JPA ni por las clases o código que hemos
introducido por tanto hay que crearla . esto se hace para que la ventana quede mas limpia de
código y las operaciones sean realziadas por clases en el Control
La clase DepartamentosTrBD se crea (en el package CONTROL) y se digita el código para el
método adicionar asi:
import MODELO.Departamentos;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
/**
*
* @author wdiaz
*/
public class DepartamentosTrBD {
public static boolean adicionar(String scodigo, String nombre) {
boolean r=true;
int icodigo=Integer.parseInt(scodigo);
Integer codigo =icodigo;
Departamentos dep= new Departamentos();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("EXFINALPROJPAPU");
EntityManager em = emf.createEntityManager();
DepartamentosJpaController service = new DepartamentosJpaController (emf);
em.getTransaction().begin();
dep.setCodigodepto(codigo);
dep.setNombredepto(nombre);
try{
service.create(dep);
em.getTransaction().commit();
}catch(Exception e){
System.out.println(e);
em.getTransaction().rollback();
r=false;
return r;
}
System.out.println("Persisted " + dep);
em.close();
emf.close();
return r;
}

Puede probar ejecutar adicionando un nuevo departamento . Haremos el código para buscar mas
adelante pero puede verificar si lo adiciono con SELECT * FROM DEPARTAMENTOS en Oracle
De igual manera incluya para cada botón este código

Boton modify
String scodigo="";
String nombre ="";
scodigo = jTextField1.getText();
nombre = jTextField2.getText();
if(DepartamentosTrBD.modificar(scodigo, nombre)){
javax.swing.JOptionPane.showMessageDialog(this, "REGISTRO MODICADO");
}
else{
javax.swing.JOptionPane.showMessageDialog(this, "NO SE PUDO MODIFICAR");
}
Boton delete
String scodigo="";
scodigo = jTextField1.getText();
if(DepartamentosTrBD.eliminar(scodigo)){
javax.swing.JOptionPane.showMessageDialog(this, "REGISTRO ELIMINADO CON EXITO");
}
else{
javax.swing.JOptionPane.showMessageDialog(this, "NO SE PUDO ELIMINAR");
}

Boton buscar

String scodigo="";
scodigo = jTextField1.getText();
int icodigo=Integer.parseInt(scodigo);
Departamentos dep=DepartamentosTrBD.getDepartamento(icodigo);
if(dep!=null){
jTextField2.setText(dep.getNombredepto());
}
else{
javax.swing.JOptionPane.showMessageDialog(this, "NO SE PUDO ENCONTRAR");
}
Y la clase DepartamentosTrBD completa queda (en le package CONTROL)

import MODELO.Departamentos;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
/**
*
* @author wdiaz
*/
public class DepartamentosTrBD {
public static boolean adicionar(String scodigo, String nombre) {
boolean r=true;
int icodigo=Integer.parseInt(scodigo);
Integer codigo =icodigo;
Departamentos dep= new Departamentos();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("EXFINALPROJPAPU");
EntityManager em = emf.createEntityManager();
DepartamentosJpaController service = new DepartamentosJpaController (emf);
em.getTransaction().begin();
dep.setCodigodepto(codigo);
dep.setNombredepto(nombre);
try{
service.create(dep);
em.getTransaction().commit();
}catch(Exception e){
System.out.println(e);
em.getTransaction().rollback();
r=false;
return r;
}
System.out.println("Persisted " + dep);
em.close();
emf.close();
return r;
}
public static boolean modificar(String scodigo, String nombre) {
boolean r=true;
int icodigo=Integer.parseInt(scodigo);
Integer codigo =icodigo;
Departamentos dep= new Departamentos();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("EXFINALPROJPAPU");
EntityManager em = emf.createEntityManager();
DepartamentosJpaController service = new DepartamentosJpaController (emf);
em.getTransaction().begin();
dep.setCodigodepto(codigo);
dep.setNombredepto(nombre);
try{
service.edit(dep);
em.getTransaction().commit();
}catch(Exception e){
System.out.println(e);
em.getTransaction().rollback();
r=false;
return r;
}
System.out.println("modificado " + dep);
em.close();
emf.close();
return r;
}
public static boolean eliminar(String scodigo) {
boolean r=true;
int icodigo=Integer.parseInt(scodigo);
Integer codigo =icodigo;
EntityManagerFactory emf = Persistence.createEntityManagerFactory("EXFINALPROJPAPU");
EntityManager em = emf.createEntityManager();
DepartamentosJpaController service = new DepartamentosJpaController (emf);
em.getTransaction().begin();
try{
service.destroy(codigo);
em.getTransaction().commit();
}catch(Exception e){
System.out.println(e);
em.getTransaction().rollback();
r=false;
return r;
}
System.out.println("modificado " + codigo);
em.close();
emf.close();
return r;
}
public static Departamentos getDepartamento(int icodigo){
Integer codigo=icodigo;
Departamentos dep= new Departamentos();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("EXFINALPROJPAPU");
EntityManager em = emf.createEntityManager();
DepartamentosJpaController service = new DepartamentosJpaController (emf);
dep = em.find(Departamentos.class, codigo);
em.close();
emf.close();
return dep;
}
}

Pregunta será posible hacer la lógica (código) para los botones first, previous, next y last?
Algunas ideas al respecto
En la segunda parte se hará el CRUD para la tabla EMPLEADOS teniendo en cuenta que existe una
relación 1-n entre Departamentos y Empleados.

ANEXO 1 : SCRIP SQL para crear la base de datos

DROP TABLE EMPLEADOS;
DROP TABLE DEPARTAMENTOS;
CREATE TABLE departamentos (
codigodepto NUMBER(5) NOT NULL,
NOMBREDEPTO VARCHAR2(25) NOT NULL,
CONSTRAINT PK_departamentos PRIMARY KEY (codigodepto)
)
;
CREATE TABLE EMPLEADOS (
CODIGOEMP NUMBER(5) NOT NULL,
APELLIDO VARCHAR2(40) NOT NULL,
NOMBRE VARCHAR2(40) NOT NULL,
SEXO CHAR(1) NOT NULL,
EMAIL VARCHAR2(80) NOT NULL,
SALARIO NUMBER(12,2) NOT NULL,
codigodepto NUMBER(5) NOT NULL,
CONSTRAINT PK_EMPLEADOS PRIMARY KEY (CODIGOEMP)
)
;
ALTER TABLE EMPLEADOS
ADD CONSTRAINT FK_EMPLEADOS_departamentos
FOREIGN KEY (codigodepto) REFERENCES departamentos (codigodepto)
;
Se aconseja hacer algunos insert para tener dos o tres registros
en cada tabla
INSERT INTO
departamentos VALUES(10,'sistemas');
INSERT INTO
departamentos VALUES(11,'finanzas');
INSERT INTO
EMPLEADOS
VALUES(1,'GRISALES','AMPARO','F','amparito@gmail.com',5000.0,11);
ANEXO 2 EN CASO QUE DEBA CREAR LA CONNECCION DESDE CEROS

Al elegir esta opción se muestra este dialogo para crar una conexión con la base de datos
Si la coneccion no esta ustede puede crearla eligiendo NEW DATABASE CONECCTION

ELIJA NEW DATABSE CONNECTION
LUEGO ELIJA Oracle Thin en la caja desplegable de drivers

Y ESCOJA
Digite luego el User Name y el pasword y presione Test Connection
Y si todo esta bien presiones Finish

Weitere ähnliche Inhalte

Was ist angesagt?

5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formularios5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formulariosLaura Folgado Galache
 
Advanced Javascript
Advanced JavascriptAdvanced Javascript
Advanced JavascriptAdieu
 
Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesJosé Antonio Sandoval Acosta
 
Programa calculadora
Programa calculadoraPrograma calculadora
Programa calculadorajbersosa
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansDaniel Gómez
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetosClara Patricia Avella Ibañez
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasJosé Antonio Sandoval Acosta
 
Control de versiones desde Eclipse.
Control de versiones desde Eclipse.Control de versiones desde Eclipse.
Control de versiones desde Eclipse.Fontyed
 
5. Destructuring | ES6 | Assignment
5. Destructuring | ES6 | Assignment 5. Destructuring | ES6 | Assignment
5. Destructuring | ES6 | Assignment pcnmtutorials
 
Presentacion de etiquetas "HTML"
Presentacion de etiquetas "HTML"Presentacion de etiquetas "HTML"
Presentacion de etiquetas "HTML"Ivan Perez
 
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Sergio Sanchez
 
Fundamental JavaScript [UTC, March 2014]
Fundamental JavaScript [UTC, March 2014]Fundamental JavaScript [UTC, March 2014]
Fundamental JavaScript [UTC, March 2014]Aaron Gustafson
 
Java GUI La librería Swing
Java GUI La librería Swing Java GUI La librería Swing
Java GUI La librería Swing Laura
 

Was ist angesagt? (20)

14 Curso de POO en java - estructuras condicionales
14 Curso de POO en java - estructuras condicionales14 Curso de POO en java - estructuras condicionales
14 Curso de POO en java - estructuras condicionales
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formularios5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formularios
 
Advanced Javascript
Advanced JavascriptAdvanced Javascript
Advanced Javascript
 
Ejercicios en java
Ejercicios en javaEjercicios en java
Ejercicios en java
 
Classes objects in java
Classes objects in javaClasses objects in java
Classes objects in java
 
Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras Lineales
 
Programa calculadora
Programa calculadoraPrograma calculadora
Programa calculadora
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeans
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 
Java Collections Framework
Java Collections FrameworkJava Collections Framework
Java Collections Framework
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
 
Arreglos Java
Arreglos JavaArreglos Java
Arreglos Java
 
Control de versiones desde Eclipse.
Control de versiones desde Eclipse.Control de versiones desde Eclipse.
Control de versiones desde Eclipse.
 
5. Destructuring | ES6 | Assignment
5. Destructuring | ES6 | Assignment 5. Destructuring | ES6 | Assignment
5. Destructuring | ES6 | Assignment
 
Java colecciones
Java coleccionesJava colecciones
Java colecciones
 
Presentacion de etiquetas "HTML"
Presentacion de etiquetas "HTML"Presentacion de etiquetas "HTML"
Presentacion de etiquetas "HTML"
 
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
 
Fundamental JavaScript [UTC, March 2014]
Fundamental JavaScript [UTC, March 2014]Fundamental JavaScript [UTC, March 2014]
Fundamental JavaScript [UTC, March 2014]
 
Java GUI La librería Swing
Java GUI La librería Swing Java GUI La librería Swing
Java GUI La librería Swing
 

Andere mochten auch

Tutorial de jpa para windows usando net beans y mysql parte 1
Tutorial de jpa para windows usando net beans y mysql parte 1Tutorial de jpa para windows usando net beans y mysql parte 1
Tutorial de jpa para windows usando net beans y mysql parte 1Henry Mendoza Puerta
 
Tutorial de persistencia en java con postgresql
Tutorial de persistencia en java con  postgresqlTutorial de persistencia en java con  postgresql
Tutorial de persistencia en java con postgresqlCarlos Anrango
 
Metodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a ObjetosMetodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a ObjetosWilliam Diaz S
 
ConexióN A Base De Datos En Netbeans
ConexióN A Base De Datos En NetbeansConexióN A Base De Datos En Netbeans
ConexióN A Base De Datos En Netbeansguest044583b
 
Java Persistence Api (Jpa)
Java Persistence Api (Jpa)Java Persistence Api (Jpa)
Java Persistence Api (Jpa)Ronald Cuello
 
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 NetbeansEmerson Garay
 
Persistência com JPA usando o NetBeans 7
Persistência com JPA usando o NetBeans 7Persistência com JPA usando o NetBeans 7
Persistência com JPA usando o NetBeans 7Claudio Martins
 
Base de datos con Netbeans
Base de datos con NetbeansBase de datos con Netbeans
Base de datos con NetbeansRandy
 
Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2mtemarialuisa
 
Persistencia de datos en Java
Persistencia de datos en JavaPersistencia de datos en Java
Persistencia de datos en JavaIker Canarias
 
EJB con Eclipse y JBoss
EJB con Eclipse y JBossEJB con Eclipse y JBoss
EJB con Eclipse y JBossPaco Garat
 
Manual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en EclipseManual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en EclipseStalin Eduardo Tusa Vitar
 
Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012Frederico Maia Arantes
 
Reportes con crystal reports en asp.net
Reportes con crystal reports en asp.netReportes con crystal reports en asp.net
Reportes con crystal reports en asp.netHenry Mendoza Puerta
 
CONEXION A BASE DE DATOS DESDE NETBEANS
CONEXION A BASE DE DATOS DESDE NETBEANSCONEXION A BASE DE DATOS DESDE NETBEANS
CONEXION A BASE DE DATOS DESDE NETBEANSNESTIRRI
 

Andere mochten auch (20)

JPA en Netbeans
JPA en NetbeansJPA en Netbeans
JPA en Netbeans
 
Tutorial de jpa para windows usando net beans y mysql parte 1
Tutorial de jpa para windows usando net beans y mysql parte 1Tutorial de jpa para windows usando net beans y mysql parte 1
Tutorial de jpa para windows usando net beans y mysql parte 1
 
Tutorial de persistencia en java con postgresql
Tutorial de persistencia en java con  postgresqlTutorial de persistencia en java con  postgresql
Tutorial de persistencia en java con postgresql
 
Metodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a ObjetosMetodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a Objetos
 
ConexióN A Base De Datos En Netbeans
ConexióN A Base De Datos En NetbeansConexióN A Base De Datos En Netbeans
ConexióN A Base De Datos En Netbeans
 
Java Persistence Api (Jpa)
Java Persistence Api (Jpa)Java Persistence Api (Jpa)
Java Persistence Api (Jpa)
 
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
 
Persistência com JPA usando o NetBeans 7
Persistência com JPA usando o NetBeans 7Persistência com JPA usando o NetBeans 7
Persistência com JPA usando o NetBeans 7
 
Base de datos con Netbeans
Base de datos con NetbeansBase de datos con Netbeans
Base de datos con Netbeans
 
Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2
 
Persistencia de datos en Java
Persistencia de datos en JavaPersistencia de datos en Java
Persistencia de datos en Java
 
EJB con Eclipse y JBoss
EJB con Eclipse y JBossEJB con Eclipse y JBoss
EJB con Eclipse y JBoss
 
Conexion del jpa con mysql
Conexion del jpa con mysqlConexion del jpa con mysql
Conexion del jpa con mysql
 
Manual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en EclipseManual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en Eclipse
 
Netbean
Netbean Netbean
Netbean
 
Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012
 
Bases de datos nosql
Bases de datos nosqlBases de datos nosql
Bases de datos nosql
 
Reportes con crystal reports en asp.net
Reportes con crystal reports en asp.netReportes con crystal reports en asp.net
Reportes con crystal reports en asp.net
 
CONEXION A BASE DE DATOS DESDE NETBEANS
CONEXION A BASE DE DATOS DESDE NETBEANSCONEXION A BASE DE DATOS DESDE NETBEANS
CONEXION A BASE DE DATOS DESDE NETBEANS
 
MVC
MVCMVC
MVC
 

Ähnlich wie Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS

Estructuras de control try catch
Estructuras de control try catchEstructuras de control try catch
Estructuras de control try catchjbersosa
 
Ejemplo j internalframe_gine
Ejemplo j internalframe_gineEjemplo j internalframe_gine
Ejemplo j internalframe_ginehrgamaliel
 
Estructuras De Control
Estructuras De ControlEstructuras De Control
Estructuras De ControlUPS
 
C6 net beansentradasysalidas
C6 net beansentradasysalidasC6 net beansentradasysalidas
C6 net beansentradasysalidasalenco
 
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...jaircazarin
 
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.Juan Manuel
 
Examen programación
Examen programaciónExamen programación
Examen programaciónOdalisCuichan
 
Guia practica secuenciales eclipse java 01
Guia practica secuenciales eclipse java 01Guia practica secuenciales eclipse java 01
Guia practica secuenciales eclipse java 01Emerson Garay
 
Interfaces Usuario 3
Interfaces Usuario 3Interfaces Usuario 3
Interfaces Usuario 3Milaly
 
Manuales ...
Manuales ...Manuales ...
Manuales ...elidetjc
 
Metodos,variables, pasodeparametros
Metodos,variables, pasodeparametrosMetodos,variables, pasodeparametros
Metodos,variables, pasodeparametroskenixxx
 
sentenciareturnymetodos
sentenciareturnymetodossentenciareturnymetodos
sentenciareturnymetodosLao Tobon
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggersLuis Jherry
 
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓN
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓNTEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓN
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓNAnyeni Garay
 

Ähnlich wie Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS (20)

Java tema06a
Java tema06aJava tema06a
Java tema06a
 
Estructuras de control try catch
Estructuras de control try catchEstructuras de control try catch
Estructuras de control try catch
 
Ejemplo j internalframe_gine
Ejemplo j internalframe_gineEjemplo j internalframe_gine
Ejemplo j internalframe_gine
 
Estructuras De Control
Estructuras De ControlEstructuras De Control
Estructuras De Control
 
C6 net beansentradasysalidas
C6 net beansentradasysalidasC6 net beansentradasysalidas
C6 net beansentradasysalidas
 
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
 
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
 
C# calculadora
C# calculadoraC# calculadora
C# calculadora
 
Examen programación
Examen programaciónExamen programación
Examen programación
 
Guia practica secuenciales eclipse java 01
Guia practica secuenciales eclipse java 01Guia practica secuenciales eclipse java 01
Guia practica secuenciales eclipse java 01
 
Taller uso-de-tablas
Taller uso-de-tablasTaller uso-de-tablas
Taller uso-de-tablas
 
Flow layout
Flow layoutFlow layout
Flow layout
 
Interfaces Usuario 3
Interfaces Usuario 3Interfaces Usuario 3
Interfaces Usuario 3
 
Manuales ...
Manuales ...Manuales ...
Manuales ...
 
Metodos,variables, pasodeparametros
Metodos,variables, pasodeparametrosMetodos,variables, pasodeparametros
Metodos,variables, pasodeparametros
 
sentenciareturnymetodos
sentenciareturnymetodossentenciareturnymetodos
sentenciareturnymetodos
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
 
2 f programas
2 f programas2 f programas
2 f programas
 
2 f programas
2 f programas2 f programas
2 f programas
 
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓN
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓNTEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓN
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓN
 

Kürzlich hochgeladen

Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
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.pdfMercedes Gonzalez
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxpvtablets2023
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptxRigoTito
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIAFabiolaGarcia751855
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...jlorentemartos
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOPsicoterapia Holística
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalJonathanCovena1
 
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.pdfAlfaresbilingual
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 

Kürzlich hochgeladen (20)

Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
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
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
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
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 

Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS

  • 1. TUTORIAL JPA RECORDEMOS EL OBJETIVO DEL EXAMEN FINAL HACER VARIAS APLIACIONES O UNA APLAICION CON VARIOS MODULOS Y CADA MODULO QUE GESTIONE LOS EMPLEADOS DE UN DEPARTAMENTO La primera Opcion Collecciones y persistencia no usara bases de datos pero si persistencia de Objetos JPA usara el patrón de diseño Modelo Vista Control DAO usara el patrón de diseño Data Access Objects y asi sucesivamente APEX Y ZATHURA Son soluciones web. En este Capitulo se dará un tutorial para Crear la aplicación con bases de datos y JPA Objetivo: Crear un aplicación con las funcionalidades básicas para el el CRUD de las tablas Departamento y Empleado. Usando la Persistencia JPA de JAVA (java Persistency Api) El Scrip SQL para crear la base de datos Crea.SQL se anexa
  • 2. En la primera parte se hara el CRUD para la tabla departamentos INSTRUCCIONES y debe tener los tres packages MODELO VISTA CONTROL Incluya (copia) en el package Control las librerías de Oracle en mi caso ojdbc6.jar Y adicione las librerías al proyecto De click derecho sobre Libraries y elija Add JAR/Folder Y busque el archivo jar y adicionelo. De click derecho sobre MODELO y elija “Entity Classes fron database”
  • 3. Elija la conneccion de Oracle si no esta debe crearla Elija la Tablas Departamentos y presione next
  • 4. Presione next /next y finish sin cambiar las opciones El proyecto aparece ahora asi: Se genero la unidad de persistencia (archivo xml) y la entidad (entity) Departamentos Los cuales tienen esta presentación
  • 5. Y este código XML Donde el nombre mas imporante esta encerradon en le circulo en rojo EXFINALPROJPAPU
  • 6. DepartamentosJpaController Sobre CONTROL de Boton derecho del mouse y de new y elija JPA Controller Classes fron Entity Classes como se muestra Elija MODELO.Departamentos Y presione next y luego Finish Se genera
  • 7. Y en esta clase se tienen todos estos métodos Que permiten crear, modificar, eliminar departemntos y hacer algunas consutlas de información Lo importante aquí es que las instrucciones para ahcer esto ya están inlcuidas y todos los procesos con las base de datos HAGAMOS UNA PRUEBA Haga Un programa (class ) PruebaJPA1
  • 8. Y meta este main public static void main(String[] a) throws Exception { EntityManagerFactory emf = Persistence.createEntityManagerFactory("EXFINALPROJPAPU"); EntityManager em = emf.createEntityManager(); DepartamentosJpaController service = new DepartamentosJpaController (emf); em.getTransaction().begin(); Integer codigodepto=13; String nombredepto="RRHH"; Departamentos dep = new Departamentos(); dep.setCodigodepto(codigodepto); dep.setNombredepto(nombredepto); service.create(dep); em.getTransaction().commit(); System.out.println("Persisted " + dep); em.close(); emf.close(); Ejecutele Debe salir Y en la base de datos debe quedar creado el Departamento 13 RRHH
  • 9. Bueno ya estamos listos para trabajar una interface Visual GUI para Departamentos Cree esta ventana con un JDialog
  • 10. Para poner funcionalidad (lógica ) al botón add Dele doble click al botón add Y digite este código String scodigo=""; String nombre =""; scodigo = jTextField1.getText(); nombre = jTextField2.getText(); if(DepartamentosTrBD.adicionar(scodigo, nombre)){ javax.swing.JOptionPane.showMessageDialog(this, "REGISTRO ADICIONADO"); } else{ javax.swing.JOptionPane.showMessageDialog(this, "NO SE PUDO ADICIONAR"); } Observe la clase resaltada no ha sido creada ni por JPA ni por las clases o código que hemos introducido por tanto hay que crearla . esto se hace para que la ventana quede mas limpia de código y las operaciones sean realziadas por clases en el Control La clase DepartamentosTrBD se crea (en el package CONTROL) y se digita el código para el método adicionar asi: import MODELO.Departamentos; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; /** * * @author wdiaz */ public class DepartamentosTrBD { public static boolean adicionar(String scodigo, String nombre) { boolean r=true; int icodigo=Integer.parseInt(scodigo); Integer codigo =icodigo; Departamentos dep= new Departamentos(); EntityManagerFactory emf = Persistence.createEntityManagerFactory("EXFINALPROJPAPU"); EntityManager em = emf.createEntityManager(); DepartamentosJpaController service = new DepartamentosJpaController (emf);
  • 11. em.getTransaction().begin(); dep.setCodigodepto(codigo); dep.setNombredepto(nombre); try{ service.create(dep); em.getTransaction().commit(); }catch(Exception e){ System.out.println(e); em.getTransaction().rollback(); r=false; return r; } System.out.println("Persisted " + dep); em.close(); emf.close(); return r; } Puede probar ejecutar adicionando un nuevo departamento . Haremos el código para buscar mas adelante pero puede verificar si lo adiciono con SELECT * FROM DEPARTAMENTOS en Oracle De igual manera incluya para cada botón este código Boton modify String scodigo=""; String nombre =""; scodigo = jTextField1.getText(); nombre = jTextField2.getText(); if(DepartamentosTrBD.modificar(scodigo, nombre)){ javax.swing.JOptionPane.showMessageDialog(this, "REGISTRO MODICADO"); } else{ javax.swing.JOptionPane.showMessageDialog(this, "NO SE PUDO MODIFICAR"); }
  • 12. Boton delete String scodigo=""; scodigo = jTextField1.getText(); if(DepartamentosTrBD.eliminar(scodigo)){ javax.swing.JOptionPane.showMessageDialog(this, "REGISTRO ELIMINADO CON EXITO"); } else{ javax.swing.JOptionPane.showMessageDialog(this, "NO SE PUDO ELIMINAR"); } Boton buscar String scodigo=""; scodigo = jTextField1.getText(); int icodigo=Integer.parseInt(scodigo); Departamentos dep=DepartamentosTrBD.getDepartamento(icodigo); if(dep!=null){ jTextField2.setText(dep.getNombredepto()); } else{ javax.swing.JOptionPane.showMessageDialog(this, "NO SE PUDO ENCONTRAR"); } Y la clase DepartamentosTrBD completa queda (en le package CONTROL) import MODELO.Departamentos; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; /** * * @author wdiaz */ public class DepartamentosTrBD { public static boolean adicionar(String scodigo, String nombre) { boolean r=true; int icodigo=Integer.parseInt(scodigo);
  • 13. Integer codigo =icodigo; Departamentos dep= new Departamentos(); EntityManagerFactory emf = Persistence.createEntityManagerFactory("EXFINALPROJPAPU"); EntityManager em = emf.createEntityManager(); DepartamentosJpaController service = new DepartamentosJpaController (emf); em.getTransaction().begin(); dep.setCodigodepto(codigo); dep.setNombredepto(nombre); try{ service.create(dep); em.getTransaction().commit(); }catch(Exception e){ System.out.println(e); em.getTransaction().rollback(); r=false; return r; } System.out.println("Persisted " + dep); em.close(); emf.close(); return r; } public static boolean modificar(String scodigo, String nombre) { boolean r=true; int icodigo=Integer.parseInt(scodigo); Integer codigo =icodigo; Departamentos dep= new Departamentos(); EntityManagerFactory emf = Persistence.createEntityManagerFactory("EXFINALPROJPAPU"); EntityManager em = emf.createEntityManager(); DepartamentosJpaController service = new DepartamentosJpaController (emf); em.getTransaction().begin(); dep.setCodigodepto(codigo); dep.setNombredepto(nombre); try{ service.edit(dep); em.getTransaction().commit(); }catch(Exception e){ System.out.println(e); em.getTransaction().rollback(); r=false; return r; } System.out.println("modificado " + dep); em.close();
  • 14. emf.close(); return r; } public static boolean eliminar(String scodigo) { boolean r=true; int icodigo=Integer.parseInt(scodigo); Integer codigo =icodigo; EntityManagerFactory emf = Persistence.createEntityManagerFactory("EXFINALPROJPAPU"); EntityManager em = emf.createEntityManager(); DepartamentosJpaController service = new DepartamentosJpaController (emf); em.getTransaction().begin(); try{ service.destroy(codigo); em.getTransaction().commit(); }catch(Exception e){ System.out.println(e); em.getTransaction().rollback(); r=false; return r; } System.out.println("modificado " + codigo); em.close(); emf.close(); return r; } public static Departamentos getDepartamento(int icodigo){ Integer codigo=icodigo; Departamentos dep= new Departamentos(); EntityManagerFactory emf = Persistence.createEntityManagerFactory("EXFINALPROJPAPU"); EntityManager em = emf.createEntityManager(); DepartamentosJpaController service = new DepartamentosJpaController (emf); dep = em.find(Departamentos.class, codigo); em.close(); emf.close(); return dep; } } Pregunta será posible hacer la lógica (código) para los botones first, previous, next y last? Algunas ideas al respecto
  • 15. En la segunda parte se hará el CRUD para la tabla EMPLEADOS teniendo en cuenta que existe una relación 1-n entre Departamentos y Empleados. ANEXO 1 : SCRIP SQL para crear la base de datos DROP TABLE EMPLEADOS; DROP TABLE DEPARTAMENTOS; CREATE TABLE departamentos ( codigodepto NUMBER(5) NOT NULL, NOMBREDEPTO VARCHAR2(25) NOT NULL, CONSTRAINT PK_departamentos PRIMARY KEY (codigodepto) ) ; CREATE TABLE EMPLEADOS ( CODIGOEMP NUMBER(5) NOT NULL, APELLIDO VARCHAR2(40) NOT NULL, NOMBRE VARCHAR2(40) NOT NULL, SEXO CHAR(1) NOT NULL, EMAIL VARCHAR2(80) NOT NULL, SALARIO NUMBER(12,2) NOT NULL, codigodepto NUMBER(5) NOT NULL, CONSTRAINT PK_EMPLEADOS PRIMARY KEY (CODIGOEMP) ) ; ALTER TABLE EMPLEADOS ADD CONSTRAINT FK_EMPLEADOS_departamentos FOREIGN KEY (codigodepto) REFERENCES departamentos (codigodepto) ; Se aconseja hacer algunos insert para tener dos o tres registros en cada tabla INSERT INTO departamentos VALUES(10,'sistemas'); INSERT INTO departamentos VALUES(11,'finanzas'); INSERT INTO EMPLEADOS VALUES(1,'GRISALES','AMPARO','F','amparito@gmail.com',5000.0,11);
  • 16. ANEXO 2 EN CASO QUE DEBA CREAR LA CONNECCION DESDE CEROS Al elegir esta opción se muestra este dialogo para crar una conexión con la base de datos Si la coneccion no esta ustede puede crearla eligiendo NEW DATABASE CONECCTION ELIJA NEW DATABSE CONNECTION
  • 17. LUEGO ELIJA Oracle Thin en la caja desplegable de drivers Y ESCOJA
  • 18. Digite luego el User Name y el pasword y presione Test Connection
  • 19. Y si todo esta bien presiones Finish