Estructura de un proyecto usando DAO

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.

En la capa correspondiente a la vista recogemos nuestros datos de entrada y se los pasaríamos a un enrutado que se los pasaría al Business Object para que lanzase la operación pertiente.

En el siguiente ejemplo he obviado el enrutador y estoy llamando directamente a un método del BO:

if (opt == 1) {
	ProfesorBO profesorBO = new ProfesorBO();
	System.out.println("Inserta el nombre del profesor");
	String nombre = lector.next();
	Profesor p = new Profesor();
	p.setNombre(nombre);
	profesorBO.insertProfesor(p);
}

En el BO establecemos la conexión contra la base de datos, y en caso de que sea neceario, iniciamos una transacción.

A continuación llamamos a uno o varios métodos del DAO que ejecutarán operaciones nucleares y específicas. Por esto, se dice que los DAO son las clases tontas.

public class ProfesorBO {
    public void insertProfesor(Profesor p) {
        EntityManager em = EntityManagerSingleton.getEntityManager();
        em.getTransaction().begin();
        ProfesorDAO profesorDAO = new ProfesorDAO();
        profesorDAO.insert(em, p);
        em.getTransaction().commit();
        em.close();
    }

En el DAO, ejecutamos la operación contra la base de datos utilizando la conexión (en nuestro caso el EntityManager) que hemos creado en el BO:

public class ProfesorDAO {
	public void insert(EntityManager em, Profesor p) {
		em.persist(p);
	}

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.