package com.eactive.eai.rms.onl.common.dao;

import java.util.HashMap;
import java.util.List;

import org.springframework.stereotype.Repository;

import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;

/**
 * 승인 프로세스 관련 Dao 클래스입니다.
 * 
 */
@Repository("commonDao")
@SuppressWarnings(value = { "unchecked" })
public class CommonDao extends SqlMapClientTemplateDao {

    /**
     * (전체)목록수
     * 
     * @param param
     *            
     * @return 목록수
     */
    public int executeQueryResultInt(String statementName, HashMap param) {
        Object obj = template.queryForObject(statementName, param);

        return ((Integer) obj).intValue();
    }

    /**
     * 조회
     * 
     * @param param 검색조건 파라미터들
     *            
     * @return 검색된 결과
     */
    public List executeQuery(String statementName, HashMap param) {
        return template.queryForList(statementName, param);
    }

    /**
     * 조회
     * @param statementName
     * @return
     * @deprecated 모든 쿼리는 스키마가 정의 되어야 합니다. 
     */
    public List executeQuery(String statementName) {
        return template.queryForList(statementName);
    }

    /**
     * insert, update, delete
     * 
     * @param param insert, update, delete에 필요한 값
     *            
     * @return 
     */
    public int executeUpdate(String statementName, HashMap param) {
        return template.update(statementName, param);
    }

    /**
     * 
     * @param 
     *            
     * @return 
     */
    public String executeQueryResultString(String statementName, HashMap param) {
        return (String) template.queryForObject(statementName, param);
    }

}
