♣ Tech & Biz Salon/Tech

Mybatis selectKey Using SqlServer AND Fowarding Added Parameter

TasteGod 2012. 10. 11. 15:42

SqlServer 테이블에 신규등록하고 ( PK 는 Identity 즉 자동증가값 컬럼 )
등록하는 컨트롤러의 메쏘드에서 한건 등록후
한건을 조회하는 컨트롤러로 포워딩하는 것에 대해 정리해봅니다.


1.Mybatis selectKey Using SqlServer



0. Mybatis Mapper Xml

<insert id="insert" parameterType="....SafeStnd" useGeneratedKeys="true">

   insert into dbo.T_SAFE_STND ( SFST_NO, SFST_NM, 

     INST_KIND, INS_USERID, INS_DATE

     )

   values ( #{sfstNo,jdbcType=VARCHAR}, #{sfstNm,jdbcType=VARCHAR}, 

     #{instKind,jdbcType=CHAR}

     , #{insUserid,jdbcType=VARCHAR}

     , GETDATE()

     )

<selectKey keyProperty="sfstId" resultType="int" order="AFTER">

       SELECT @@IDENTITY

   </selectKey>

</insert>



2.(Spring) Fowarding Added Parameter



0. Insert Controller

int result = ...Service.insert(safeStnd);
logger.debug("safeStnd:" + safeStnd.getSfstId());


** 파라미터 추가 방법 3가지 - 모두 안됨
1) 
request.setAttribute("sfstId", ... );
2)
model.addAttribute("sfstId", ... );

3)  (참고 url : http://webprogrammer.tistory.com/1979 )

HttpRequestWithModifiableParameters param = new HttpRequestWithModifiableParameters(request); 
param.setParameter("sfstId", Integer.toString(result));
request = (HttpServletRequest)param;

** 결국 Session 이용하여 처리
session.setAttribute ...

0. viewOne Controller
... viewOne( HttpServletRequest request, HttpServletResponse response
                    , @RequestParam(value="sfstId",required=false) String sfstId
                    ,@ModelAttribute("sfstId") String newSfstId
                   ,,,, )



※ 참고할만한 Url
http://stackoverflow.com/questions/8585216/spring-forward-with-added-parameters