VB.NET2011.09.08 16:42
iBatis.net 에서 쿼리 호출을 할때 Mapper.Instance().QueryForList(), Mapper.Instance().QueryForObject() 로 호출을 합니다.

일반적인 예제에는 파라메타 하나 혹은 두개정도로 많이 표현하는데요, 실제 업무에 사용되는 SP는 파라메타가 적게는 한개 부터 많게는 10개 이상도 있을수 있습니다.

이 파라메타를 전달하기가 쉽지 않은데요, 아래 함수로 만들어서 넘기면 보다 쉽게 처리할수 있습니다.

호출 방식은 ...QueryForList("sp명", MakeMappedParams(new { seq = seq, ty_cd = ty_cd, sort_cd = sort_cd }));

이렇게 됩니다. 그러면 앞에서 설명한 DAO 패턴으로 봤을때 실제 DAO객체에서 생성될 함수(다양한 파마메타)에 맞게 원하는 파라메타를 넘기면 됩니다.

        public Hashtable MakeMappedParams(object objParams)
        {
            Hashtable htResult = new Hashtable();
 
            Type t = objParams.GetType();
            foreach (PropertyInfo info in t.GetProperties())
            {
                htResult.Add(info.Name, (info.GetValue(objParams, null) == null ? "" : info.GetValue(objParams, null).ToString()));
            }
            return htResult;
        }
저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by dotnetpower

티스토리 툴바