Mybatis selectKey Using SqlServer AND Fowarding Added Parameter
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