Practica JPA
-
Upload
fabricio-huera -
Category
Documents
-
view
154 -
download
1
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