/*
* Universidad de San Carlos de Guatemala
* Facultad de Ingenieria
* Escuela de Ciencias y Sistemas
*/
package pruebahibernate;
import java.util.Date;
import org.hibernate.Session;
/**
*
* @author Alvaro Daniel Castillo Carrera
*/
public class Main {
// private Session session;
public Main() {
// session = Utilidades.getSessionFactory().getCurrentSession();
}
/**
* Metodo principal encargado de ejecutar la aplicacion.
* @param args
*/
public static void main(String[] args) {
Main mgr = new Main();
// se agrega un nuevo trabajo
int cod_trabajo = mgr.agregarTrabajo(100, "Programar", new Date());
// se agrega un nuevo trabajador
int cod_trabajador = mgr.agregarTrabajador(100, "Daniel", "55083742");
// se le asigna una direccion al trabajador
mgr.agregarDireccion(cod_trabajador, "Colonia Santa Elisa");
// se le asigna un trabajo al trabajador
mgr.asignarTrabajo(cod_trabajador, cod_trabajo);
mgr.modificarTrabajador(cod_trabajador, "24761543");
mgr.borrarTrabajador(cod_trabajador);
// se cierra la sesion
Utilidades.getSessionFactory().close();
}
//_________________________________________________________________________________________________
/**
* Este metodo se encarga de agregar un Trabajo a la base de datos.
* @param id_trabajo
* @param nombre
* @param fecha
* @return int
*/
private int agregarTrabajo(int id_trabajo, String nombre, Date fecha) {
// se obtiene la sesion
Session session = Utilidades.getSessionFactory().getCurrentSession();
// se inicia la transaccion
session.beginTransaction();
// se crea un objeto Trabajo
Trabajo trabajo = new Trabajo();
trabajo.setId_trabajo(id_trabajo);
trabajo.setNombre(nombre);
trabajo.setFecha(fecha);
// se almacena en la base de datos el objeto
session.save(trabajo);
// se hace persistente el objeto
session.getTransaction().commit();
System.out.println("SE AGREGO UN TRABAJO CON LOS SIGUIENTES DATOS:\n");
System.out.println("\tID_TRABAJO = " + id_trabajo + "\n");
System.out.println("\tNOMBRE = " + nombre + "\n");
System.out.println("\tFECHA = " + fecha + "\n\n\n");
return id_trabajo;
}
//_________________________________________________________________________________________________
/**
* Este metodo se encarga de agregar un Trabajador a la base de datos.
* @param id_trabajador
* @param nombre
* @param telefono
* @return int
*/
private int agregarTrabajador(int id_trabajador, String nombre, String telefono) {
// se obtiene la sesion
Session session = Utilidades.getSessionFactory().getCurrentSession();
// se inicia la transaccion
session.beginTransaction();
// se crea un objeto Trabajador
Trabajador trabajador = new Trabajador();
trabajador.setId_trabajador(id_trabajador);
trabajador.setNombre(nombre);
trabajador.setTelefono(telefono);
// se almacena en la base de datos el objeto
session.save(trabajador);
// se hace persistente el objeto
session.getTransaction().commit();
System.out.println("SE AGREGO UN TRABAJADOR CON LOS SIGUIENTES DATOS:\n");
System.out.println("\tID_TRABAJADOR = " + id_trabajador + "\n");
System.out.println("\tNOMBRE = " + nombre + "\n");
System.out.println("\tTELEFONO = " + telefono + "\n\n\n");
return id_trabajador;
}
//_________________________________________________________________________________________________
/**
* Este metodo se encarga de agregar direcciones. Estas direcciones
* son asociadas a un trabajador.
* @param id_trabajador
* @param direccion
*/
private void agregarDireccion(int id_trabajador, String direccion) {
// se obtiene la sesion
Session session = Utilidades.getSessionFactory().getCurrentSession();
// se inicia la transaccion
session.beginTransaction();
// se obtiene un objeto Trabajador de la base de datos
Trabajador trabajador = (Trabajador) session.load(Trabajador.class, id_trabajador);
// se le agrega la nueva direccion
trabajador.getDirecciones().add(direccion);
// se hace persiste el objeto
session.getTransaction().commit();
System.out.println("SE AGREGO UNA DIRECCION AL TRABAJADOR:\n");
System.out.println("\tID_TRABAJADOR = " + id_trabajador + "\n");
System.out.println("\tDIRECCION = " + direccion + "\n\n\n");
}
//_________________________________________________________________________________________________
/**
* Este metodo se encarga de asignar trabajos a los trabajadores.
* @param id_trabajador
* @param id_trabajo
*/
private void asignarTrabajo(int id_trabajador, int id_trabajo) {
// se obtiene la sesion
Session session = Utilidades.getSessionFactory().getCurrentSession();
// se inicia la transaccion
session.beginTransaction();
// se obtiene un objeto Trabajador de la base de datos
Trabajador trabajador = (Trabajador) session.load(Trabajador.class, id_trabajador);
// se obtiene un objeto Trabajo de la base de datos
Trabajo trabajo = (Trabajo) session.load(Trabajo.class, id_trabajo);
// se agrega la asignacion de trabajo al trabajador
trabajador.getTrabajos().add(trabajo);
// se hace persiste el objeto
session.getTransaction().commit();
System.out.println("SE REALIZO LA SIGUIENTE ASIGNACION DE TRABAJO:\n");
System.out.println("\tID_TRABAJO = " + id_trabajo + "\n");
System.out.println("\tID_TRABAJADOR = " + id_trabajador + "\n\n\n");
}
//_________________________________________________________________________________________________
private void modificarTrabajador(int id_trabajador, String telefono) {
// se obtiene la sesion
Session session = Utilidades.getSessionFactory().getCurrentSession();
// se inicia la transaccion
session.beginTransaction();
// se obtiene un objeto Trabajador de la base de datos
Trabajador trabajador = (Trabajador) session.load(Trabajador.class, id_trabajador);
// se realiza la modificacion del trabajador
trabajador.setTelefono(telefono);
// se realiza la actualizacion
session.update(trabajador);
// se hace persiste el objeto
session.getTransaction().commit();
System.out.println("SE MODIFICO LA INFORMACION DEL SIGUIENTE TRABAJADOR:\n");
System.out.println("\tID_TRABAJADOR = " + id_trabajador + "\n");
System.out.println("\tNUEVO TELEFONO = " + telefono + "\n\n\n");
}
//_________________________________________________________________________________________________
private void borrarTrabajador(int id_trabajador) {
// se obtiene la sesion
Session session = Utilidades.getSessionFactory().getCurrentSession();
// se inicia la transaccion
session.beginTransaction();
// se obtiene un objeto Trabajador de la base de datos
Trabajador trabajador = (Trabajador) session.load(Trabajador.class, id_trabajador);
// se elimina el registro
session.delete(trabajador);
// se hace persiste el objeto
session.getTransaction().commit();
System.out.println("SE ELIMINO EL SIGUIENTE TRABAJADOR:\n");
System.out.println("\tID_TRABAJADOR = " + id_trabajador + "\n\n\n");
}
}
//_________________________________________________________________________________Fin de Main.java