Practica JPA

download Practica JPA

of 29

Transcript of Practica JPA

UNIVERSIDAD TCNICA DEL NORTE

Practica JPADeber de programacin 5401211214

Fabricio Huera Cristian Vsquez

Creacin de la base de datos Gestin EmpleadosIngresamos a PowerDisigner para crear la base de datos y escogemos DBMS que es el de MySQL 5.

Escogemos MySQL 5.0 y hacemos clic en OK

Tenemos la interfaz donde podemos agregar tablas mediante la paleta de herramientas.

Agregamos dos tablas para crear la base de datos gestin.

Hacemos doble clic en la tabla que vamos a editar y llenamos los campos.

Despus de crear las 2 tablas las relacionamos.

Una vez ya creadas las tablas vamos a crear el script para crear la base de datos.

Hacemos clic para generar el script

Aceptar para generar el script

Lo siguiente es ir a MySQL Workbench para crear la base de datos y generar el script para que nos cree las tablas.

Hacemos clic para poder pegar el script y ejecutar para que se cree las tablas

Creacin del proyecto en NetBeansIngresamos en NetBeans y creamos un nuevo proyecto.

Cuando ya esta creado el proyecto procedemos a crear la conexin de NetBeans con MySQL de la siguiente manera, en el proyecto seleccionamos biblioteca y hacemos clic derecho y escogemos la opcin agregar biblioteca

Agregamos biblioteca para la conexin

En Aadir biblioteca escogemos Driver MySQL JDBC

Driver para realizar la conexin

Una vez hecho esto vamos a crear las entidades a partir de una base de datos.

Clase entidad

Cuando hacemos clic en clase entidad nos aparece la ventana donde vamos a escoger los datos

Si no existe la conexin para MySQL escogemos nueva conexin

Seleccionamos la conexin MySQL

Si escogemos nueva conexin tenemos que escoger driver de MySQL como muestra la imagen

Escogemos MySQL (connector/J driver) y hacemos clic en siguiente

Aqu vamos a poner el puerto, la base de datos, la clave y el usuario como muestra la siguiente imagen. Ponemos el puerto donde utiliza MySQL en mi caso es 3307 pero el por defecto es 3306

Ponemos la base de datos que creamos, tambin el usuario y la clave Hacemos clic en probar conexin y vemos que se realiza con xito

Aqu ya nos aparecen las tablas donde las seleccionamos las 2 tablas.

Agregamos las tablas y hacemos clic en siguiente

Ponemos el nombre modelo.entidades

En la siguiente ventana escogemos tipo coleccin java.util.List y hacemos clic en terminar

Aqu escogemos java.util.List

Ahora vamos a crear el dao con lo que vamos al proyecto y hacemos clic derecho en el proyecto y escogemos Clases Controladoras JPA

Nos aparece la siguiente ventana donde seleccionamos las entidades que vamos a controlar y damos en siguiente

Agregamos las entidades

Cambiamos el nombre del paquete a modelo.dao y damos en terminar.

Creacin de la interfaz grafica para utilizar lo antes creadoVamos a crear un formulario jFrame para lo cual vamos al proyecto hacemos clic derecho y nuevo formulario jFrame y le ponemos de nombre gestionEmpleados y en el nombre del paquete le ponemos deberprogramacion

En el formulario ponemos todo lo que vemos en la imgen para poder ingresar, actualizar, eliminar y buscar empleados. En la parte de la fecha nos descargamos jar JCalendar y lo agregamos a NetBeans para poder utilizar las fechas, en la pestaa empleados tenemos la siguiente interfaz.

Para la fecha utilizamos el jCalendar

En la pestaa lista empleados tenemos un jTable donde vamos a listar los empleados y el botn eliminar para liminar los empleados.

En la pestaa actualizar tenemos para buscar los empleados y para actualizar los datos como mustrala imagen.

En la pestaa profesin tenemos el listado de la profesin y donde podemos agregar ms profesiones.

Cdigo del programaVamos a ver la utilizacin del cdigo de cada uno de los botones. Primero importamos lagunas libreras para poder utilizar el cdigo ,aqu tenemos las libreras que importamosimport java.awt.Toolkit; import java.text.ParseException; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import modelo.entidades.Empleados; import modelo.entidades.Titulo; import modelo.dao.TituloJpaController; import modelo.dao.EmpleadosJpaController; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import javax.persistence.Query; import javax.swing.JOptionPane; import javax.swing.JTextField; import modelo.dao.exceptions.IllegalOrphanException; import modelo.dao.exceptions.NonexistentEntityException;

Declaramos algunas variables para poder utilizar la persistencia.EntityManagerFactory emf = Persistence.createEntityManagerFactory("DeberPrograPU"); TituloJpaController dao = new TituloJpaController(emf); int con = 0; EmpleadosJpaController dao1;

int id=0; int idtitulo=0;

/** * Creates new form GestionEmplados */

En el constructor declaramos un Lista de tipo Titulo para poder llenar un jComboBox para poder escoger la profesin del empleado.public GestionEmplados() { initComponents(); List lista = dao.findTituloEntities(); for (Titulo t : lista) { cbxTitulo.addItem(t.getProfesion()); cbxTitulo1.addItem(t.getProfesion()); } }

El siguiente es el cdigo del botn guardar donde nos ayuda a guardar los datos de los jTextField declarando un Empleado y con la utilizacin del dao1 podemos guardar en la base de datos mediante el codigo dao1.create ah nos ingresa todo los datos recibidos del formulario como lo muestra la figura.private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) { try { dao1 = new EmpleadosJpaController(emf); Empleados nuevoEmp = new Empleados(); List lista = dao.findTituloEntities(); for (Titulo t : lista) { if (t.getProfesion() == cbxTitulo.getSelectedItem()) {

nuevoEmp.setIdTitulo(t); } } nuevoEmp.setCedula(jtfCedula.getText()); nuevoEmp.setNombres(jtfNombres.getText()); nuevoEmp.setApellidos(jtfApellidos.getText()); nuevoEmp.setFechaIngreso(jCFechaIngreso.getDate()); nuevoEmp.setIdEmpleado(con); nuevoEmp.setCargo(jtfCargo.getText()); nuevoEmp.setFechaNacimiento(jCFechaNacimiento.getDate()); nuevoEmp.setSueldo(Integer.parseInt(jtfSueldo.getText())); dao1.create(nuevoEmp); con+=1; jtfCedula.setText(null); jtfNombres.setText(null); jtfApellidos.setText(null); jtfCargo.setText(null); jtfSueldo.setText(null); } catch (Exception ex) { JOptionPane.showMessageDialog(null, ex.getMessage()); } }

En la imagen vemos como llenar los datos de un empleado y mediante el botn guardar y con el cdigo que lleva dentro los datos se guardan en la base de datos

Al hacer clic se guardan los datos

Ahora vamos ver el cdigo para poder presentar los datos en un jTable y poder eliminar los datos mediante la tabla para lo cual utilizamos el siguiente cdigo. Primero para poder mostrar los datos en la tabla necesitamos crear una clase que nos ayude. El cdigo necesario para la clase ModeloDeTabla es el siguiente.import java.util.List; import javax.swing.table.AbstractTableModel; public class ModeloDeTabla extends AbstractTableModel{ private String[] titCol; private Object[][] data; public ModeloDeTabla(List list,String... titulos){ int ctasFils=list.size(); int ctasCols;

if(ctasFils>0){ ctasCols=((Object[]) list.get(0)).length; data =new Object[ctasFils][ctasCols]; } else{ ctasCols=titulos.length; data=new Object[0][0]; } if(titulos.length!=ctasCols){ titCol=new String[ctasCols]; for(int col=0;col