/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package mx.edu.um.mateo.inscripciones.dao.impl; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Map; import javax.sql.DataSource; import mx.edu.um.mateo.general.dao.BaseDao; import mx.edu.um.mateo.inscripciones.model.Alumno; import mx.edu.um.mateo.inscripciones.dao.AlumnoDao; import org.springframework.transaction.annotation.Transactional; import mx.edu.um.mateo.general.utils.Constantes; import mx.edu.um.mateo.inscripciones.model.AlumnoAcademico; import mx.edu.um.mateo.inscripciones.model.Modalidad; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Repository; /** * * @author zorch */ @Transactional @Repository public class AlumnoDaoHibernate extends BaseDao implements AlumnoDao{ @Autowired @Qualifier("dataSource2") private DataSource dataSource2; @Override @Transactional(readOnly=true) public Map<String, Object> lista(Map<String, Object> params) { //Trallendo de la base de datos. log.debug("Listado de Alumnos"); Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; java.util.List listaAlumn= new ArrayList(); try { conn = dataSource2.getConnection(); stmt = conn.prepareStatement("select ap.NOMBRE,ap.CODIGO_PERSONAL, ap.APELLIDO_PATERNO, ap.APELLIDO_MATERNO, aa.TIPO_ALUMNO, aa.MODALIDAD_ID, m.nombre_modalidad ,m.MODALIDAD_ID, m.ENLINEA " + "from enoc.alum_personal ap, enoc.alum_academico aa, enoc.cat_modalidad m where ap.CODIGO_PERSONAL=aa.CODIGO_PERSONAL and aa.MODALIDAD_ID=m.MODALIDAD_ID " + "and (ap.CODIGO_PERSONAL like ? or upper(ap.NOMBRE) like ? or upper(ap.APELLIDO_PATERNO) like ? or upper(ap.APELLIDO_MATERNO) like ?)"); stmt.setString(1, ((String)params.get("filtro")).toUpperCase()); stmt.setString(2, ((String)params.get("filtro")).toUpperCase()); stmt.setString(3, ((String)params.get("filtro")).toUpperCase()); stmt.setString(4, ((String)params.get("filtro")).toUpperCase()); rs = stmt.executeQuery(); while (rs.next()) { String nombre = rs.getString("NOMBRE"); String apellido_materno = rs.getString("apellido_materno"); String apellido_paterno = rs.getString("apellido_paterno"); String codigo_personal = rs.getString("codigo_personal"); Integer tipo_alumno = rs.getInt("tipo_alumno"); Integer modalidad_id = rs.getInt("modalidad_id"); String nombreModalidad= rs.getString("nombre_modalidad"); String enLinea= rs.getString("enLinea"); Modalidad modalidad= new Modalidad(modalidad_id , nombreModalidad, enLinea); AlumnoAcademico alumnoAcademico= new AlumnoAcademico(codigo_personal,modalidad,tipo_alumno); Alumno alumno = new Alumno(codigo_personal,nombre,apellido_paterno, apellido_materno, alumnoAcademico); listaAlumn.add(alumno); }}catch(Exception e){ log.error("{}", e); }finally{ try { stmt.close(); rs.close(); conn.close(); } catch (SQLException ex) { log.error("{}", ex); stmt=null; conn=null; rs=null; } } //Haciendo el metodo lista despues de trabajo de traer de la base de datos // // log.debug("Buscando lista de Alumnos con params {}", params); // if (params == null) { // params = new HashMap<>(); // } // // if (!params.containsKey("max")) { // params.put("max", 10); // } else { // params.put("max", Math.min((Integer) params.get("max"), 100)); // } // // if (params.containsKey("pagina")) { // Long pagina = (Long) params.get("pagina"); // Long offset = (pagina - 1) * (Integer) params.get("max"); // params.put("offset", offset.intValue()); // } // // if (!params.containsKey("offset")) { // params.put("offset", 0); // } // Criteria criteria = currentSession().createCriteria(Alumno.class); // Criteria countCriteria = currentSession().createCriteria(Alumno.class); // // if (params.containsKey("filtro")) { // String filtro = (String) params.get("filtro"); // Disjunction propiedades = Restrictions.disjunction(); // propiedades.add(Restrictions.ilike("apellido_paterno", filtro, // MatchMode.ANYWHERE)); // propiedades.add(Restrictions.ilike("nombre", filtro, // MatchMode.ANYWHERE)); // propiedades.add(Restrictions.ilike("codigo_personal", filtro, // MatchMode.ANYWHERE)); // propiedades.add(Restrictions.ilike("apellido_materno", filtro, // MatchMode.ANYWHERE)); // criteria.add(propiedades); // countCriteria.add(propiedades); // } // // if (params.containsKey("order")) { // String campo = (String) params.get("order"); // if (params.get("sort").equals("desc")) { // criteria.addOrder(Order.desc(campo)); // } else { // criteria.addOrder(Order.asc(campo)); // } // } // // if (!params.containsKey("reporte")) { // criteria.setFirstResult((Integer) params.get("offset")); // criteria.setMaxResults((Integer) params.get("max")); // } params.put( Constantes.ALUMNO_LIST , listaAlumn); // // countCriteria.setProjection(Projections.rowCount()); // params.put("cantidad", (Long) countCriteria.list().get(0)); return params; } @Override @Transactional(readOnly = true) public Alumno obtiene(String matricula) { log.debug("Obteniendo un alumno"); Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; Alumno alumno= new Alumno(); try { conn = dataSource2.getConnection(); log.debug("Creando query"); stmt = conn.prepareStatement("select ap.NOMBRE,ap.CODIGO_PERSONAL, ap.APELLIDO_PATERNO, ap.APELLIDO_MATERNO, aa.TIPO_ALUMNO, aa.MODALIDAD_ID, m.nombre_modalidad ,m.MODALIDAD_ID, m.ENLINEA \n" + "from enoc.alum_personal ap, enoc.alum_academico aa, enoc.cat_modalidad m where ap.CODIGO_PERSONAL=aa.CODIGO_PERSONAL and aa.MODALIDAD_ID=m.MODALIDAD_ID \n" + "and (ap.CODIGO_PERSONAL = ? )"); stmt.setString(1, matricula); log.debug("Provando conexion"); rs = stmt.executeQuery(); log.debug("Ejecutando Query"); if(rs.next()) { log.debug("Entrando al Metodo"); String nombre = rs.getString("NOMBRE"); String apellido_materno = rs.getString("apellido_materno"); String apellido_paterno = rs.getString("apellido_paterno"); String codigo_personal = rs.getString("codigo_personal"); Integer tipo_alumno = rs.getInt("tipo_alumno"); Integer modalidad_id = rs.getInt("modalidad_id"); String nombreModalidad= rs.getString("nombre_modalidad"); String enLinea= rs.getString("enLinea"); Modalidad modalidad= new Modalidad(modalidad_id , nombreModalidad, enLinea); AlumnoAcademico alumnoAcademico= new AlumnoAcademico(codigo_personal,modalidad,tipo_alumno); alumno = new Alumno(codigo_personal,nombre,apellido_paterno, apellido_materno, alumnoAcademico); }}catch(Exception e){ log.error("{}",e); }finally{ try { stmt.close(); rs.close(); conn.close(); } catch (SQLException ex) { log.error("{}", ex); stmt=null; conn=null; rs=null; } } return alumno; } }