Source Code‎ > ‎src‎ > ‎in.co.sunrays.proj1‎ > ‎dao‎ > ‎

MarksheetDAOJDBCImpl.java

package in.co.sunrays.proj1.dao;
 
import in.co.sunrays.proj1.dto.MarksheetDTO;
import in.co.sunrays.proj1.exception.DatabaseException;
import in.co.sunrays.proj1.exception.DuplicateRecordException;
 
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
import org.apache.log4j.Logger;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
 
/**
 * JDBC Implementation of MarksheetDAO
 * 
 * @author SUNRAYS Technologies
 * @version 1.0
 * @Copyright (c) SUNRAYS Technologies
 */
public class MarksheetDAOJDBCImpl extends JdbcDaoSupport implements
        MarksheetDAOInt {
 
    /**
     * Logger
     */
    private static Logger log = Logger.getLogger(MarksheetDAOJDBCImpl.class);
 
    /**
     * Find next PK for Marksheet
     * 
     * @throws DatabaseException
     */
    public long nextPK() throws DatabaseException {
        log.debug("DAO nextPK Started");
        long pk = 0;
        try {
            pk = getJdbcTemplate().queryForLong(
                    "SELECT MAX(ID) FROM ST_MARKSHEET");
        } catch (Exception e) {
            log.error("Database Exception..", e);
            throw new DatabaseException("Exception : Exception in getting PK");
        }
        log.debug("DAO nextPK End");
        return pk + 1;
    }
 
    /**
     * Add a Marksheet
     * 
     * @param dto
     * @throws DatabaseException
     */
    public long add(MarksheetDTO dto) throws DatabaseException {
        log.debug("DAO add Started");
        // Get auto-generated next primary key
        long pk = nextPK();
        try {
            Object[] values = new Object[] { pk, dto.getRollNo(),
                    dto.getStudentId(), dto.getName(), dto.getPhysics(),
                    dto.getChemistry(), dto.getMaths(), dto.getCreatedBy(),
                    dto.getModifiedBy(), dto.getCreatedDatetime(),
                    dto.getModifiedDatetime() };
            getJdbcTemplate().update(
                    "INSERT INTO ST_MARKSHEET VALUES(?,?,?,?,?,?,?,?,?,?,?)",
                    values);
        } catch (Exception e) {
            e.printStackTrace();
            log.error("Database Exception..", e);
            throw new DatabaseException(
                    "Exception : Exception in add marksheet");
        }
        log.debug("DAO add End");
        return pk;
    }
 
    /**
     * Update a Marksheet
     * 
     * @param dto
     * @throws DatabaseException
     */
    @Override
    public void update(MarksheetDTO dto) throws DatabaseException {
        log.debug("DAO update Started");
        try {
            Object[] values = new Object[] { dto.getRollNo(), dto.getName(),
                    dto.getPhysics(), dto.getChemistry(), dto.getMaths(),
                    dto.getCreatedBy(), dto.getModifiedBy(),
                    dto.getCreatedDatetime(), dto.getModifiedDatetime(),
                    dto.getId() };
            getJdbcTemplate()
                    .update("UPDATE ST_MARKSHEET SET ROLL_NO=?,NAME=?,PHYSICS=?,CHEMISTRY=?,MATHS=?,CREATED_BY=?,MODIFIED_BY=?,CREATED_DATETIME=?,MODIFIED_DATETIME=? WHERE ID=?",
                            values);
        } catch (Exception e) {
            log.error("Database Exception..", e);
            throw new DatabaseException("Exception in updating marksheet");
        }
        log.debug("DAO update End");
    }
 
    /**
     * Delete a Marksheet
     * 
     * @param dto
     * @throws DatabaseException
     */
    public void delete(MarksheetDTO dto) throws DatabaseException {
        log.debug("DAO delete Started");
        try {
            getJdbcTemplate().update("DELETE FROM ST_MARKSHEET WHERE ID=?",
                    new Object[] { dto.getId() });
        } catch (Exception e) {
            log.error("Database Exception..", e);
            throw new DatabaseException(
                    "Exception : Exception in delete marksheet");
        }
        log.debug("DAO delete Started");
    }
 
    /**
     * Find Marksheet by Roll No
     * 
     * @param rollNo
     *            : get parameter
     * @return dto
     * @throws DuplicateRecordException
     */
    @Override
    public MarksheetDTO findByRollNo(String rollNo) throws DatabaseException {
        log.debug("DAO findByRollNo Started");
        MarksheetDTO dto = null;
        try {
            dto = (MarksheetDTO) getJdbcTemplate().queryForObject(
                    "SELECT * FROM ST_MARKSHEET WHERE ROLL_NO=?",
                    new Object[] { rollNo }, new MarksheetMapper());
        } catch (Exception e) {
            log.error("Database Exception..", e);
            throw new DatabaseException(
                    "Exception : Exception in getting marksheet by roll no");
        }
        log.debug("DAO findByRollNo End");
        return dto;
    }
 
    /**
     * Find Marksheet by PK
     * 
     * @param pk
     *            : get parameter
     * @return dto
     * @throws DatabaseException
     */
    @Override
    public MarksheetDTO findByPK(long pk) throws DatabaseException {
        log.debug("DAO findByPK Started");
        MarksheetDTO dto = null;
        try {
            dto = (MarksheetDTO) getJdbcTemplate().queryForObject(
                    "SELECT * FROM ST_MARKSHEET WHERE ID=?",
                    new Object[] { pk }, new MarksheetMapper());
        } catch (Exception e) {
            log.error("Database Exception..", e);
            throw new DatabaseException(
                    "Exception : Exception in getting marksheet by pk");
        }
        log.debug("DAO findByPK End");
        return dto;
    }
 
    /**
     * Search Marksheets
     * 
     * @param dto
     *            : Search Parameters
     * @throws DatabaseException
     */
    @Override
    public List search(MarksheetDTO dto) throws DatabaseException {
        return search(dto, 0, 0);
    }
 
    /**
     * Search Marksheets with pagination
     * 
     * @return list : List of Marksheets
     * @param dto
     *            : Search Parameters
     * @param pageNo
     *            : Current Page No.
     * @param pageSize
     *            : Size of Page
     * 
     * @throws DatabaseException
     */
    @Override
    public List search(MarksheetDTO dto, int pageNo, int pageSize)
            throws DatabaseException {
        log.debug("DAO search Started");
        StringBuffer sql = new StringBuffer(
                "SELECT * FROM ST_MARKSHEET WHERE 1=1");
        if (dto.getId() > 0) {
            sql.append(" AND ID = " + dto.getId());
        }
        if (dto.getRollNo() != null && dto.getRollNo().length() > 0) {
            sql.append(" AND ROLLNO = '" + dto.getRollNo() + "'");
        }
        if (dto.getName() != null && dto.getName().length() > 0) {
            sql.append(" AND NAME LIKE '" + dto.getName() + "%'");
        }
        if (dto.getPhysics() != null && dto.getPhysics() > 0) {
            sql.append(" AND PHYSICS = " + dto.getPhysics());
        }
        if (dto.getChemistry() != null && dto.getChemistry() > 0) {
            sql.append(" AND CHEMISTRY = " + dto.getChemistry());
        }
        if (dto.getMaths() != null && dto.getMaths() > 0) {
            sql.append(" AND MATHS = '" + dto.getMaths());
        }
        // if page size is greater than zero then apply pagination
        if (pageSize > 0) {
            // Calculate start record index
            pageNo = (pageNo - 1) * pageSize;
            sql.append(" LIMIT " + pageNo + ", " + pageSize);
        }
        List list = new ArrayList();
        try {
            list = getJdbcTemplate().query(sql.toString(),
                    new MarksheetMapper());
        } catch (Exception e) {
            log.error("Database Exception..", e);
            throw new DatabaseException(
                    "Exception : Exception in search marksheet");
        }
        log.debug("DAO search End");
        return list;
    }
 
    /**
     * Get List of Marksheets
     * 
     * @return list : List of Marksheets
     * @throws DatabaseException
     */
    @Override
    public List list() throws DatabaseException {
        return list(0, 0);
    }
 
    /**
     * Get List of Marksheets with pagination
     * 
     * @return list : List of Marksheets
     * @param pageNo
     *            : Current Page No.
     * @param pageSize
     *            : Size of Page
     * @throws DatabaseException
     */
    @Override
    public List list(int pageNo, int pageSize) throws DatabaseException {
        log.debug("DAO list Started");
        StringBuffer sql = new StringBuffer("SELECT * FROM ST_MARKSHEET");
        // if page size is greater than zero then apply pagination
        if (pageSize > 0) {
            // Calculate start record index
            pageNo = (pageNo - 1) * pageSize;
            sql.append(" LIMIT " + pageNo + "," + pageSize);
        }
        List list = new ArrayList();
        try {
            list = getJdbcTemplate().query(sql.toString(),
                    new MarksheetMapper());
        } catch (Exception e) {
            log.error("Database Exception..", e);
            throw new DatabaseException(
                    "Exception : Exception in getting list of Marksheet");
        }
        log.debug("DAO list End");
        return list;
    }
 
    /**
     * Get Merit List of Marksheets with pagination
     * 
     * @return list : List of Marksheets
     * @param pageNo
     *            : Current Page No
     * @param pageSize
     *            : Size of Page
     * @throws DatabaseException
     */
    @Override
    public List getMeritList(int pageNo, int pageSize) throws DatabaseException {
        log.debug("DAO getMeritList Started");
        StringBuffer sql = new StringBuffer(
                "SELECT ID,ROLL_NO,NAME,PHYSICS,CHEMISTRY,MATHS,CREATED_BY,MODIFIED_BY,CREATED_DATETIME,MODIFIED_DATETIME,(PHYSICS + CHEMISTRY + MATHS) AS TOTAL FROM ST_MARKSHEET ORDER BY TOTAL DESC");
        // if page size is greater than zero then apply pagination
        if (pageSize > 0) {
            // Calculate start record index
            pageNo = (pageNo - 1) * pageSize;
            sql.append(" LIMIT " + pageNo + "," + pageSize);
        }
        List list = new ArrayList();
        try {
            list = getJdbcTemplate().query(sql.toString(),
                    new MarksheetMapper());
        } catch (Exception e) {
            log.error("Database Exception..", e);
            throw new DatabaseException(
                    "Exception : Exception in getting merit list of Marksheet");
        }
        log.debug("DAO getMeritList End");
        return list;
    }
 
    class MarksheetMapper implements RowMapper {
        @Override
        public MarksheetDTO mapRow(ResultSet rs, int rowNum)
                throws SQLException {
            MarksheetDTO dto = new MarksheetDTO();
            dto.setId(rs.getLong(1));
            dto.setRollNo(rs.getString(2));
            dto.setStudentId(rs.getLong(3));
            dto.setName(rs.getString(4));
            dto.setPhysics(rs.getInt(5));
            dto.setChemistry(rs.getInt(6));
            dto.setMaths(rs.getInt(7));
            dto.setCreatedBy(rs.getString(8));
            dto.setModifiedBy(rs.getString(9));
            dto.setCreatedDatetime(rs.getTimestamp(10));
            dto.setModifiedDatetime(rs.getTimestamp(11));
            return dto;
        }
    }
}
Comments