[최종프로젝트] 방금 Insert한 기본키(primary key)가져오기
3794 단어 기본키primarykeyMyBatisINSERTINSERT
1. xml파일
insert에서 useGeneratedKeys 속성을 true로 변경, keyColumn="prchsId" keyProperty="prchsId" 적용해준다.
SQL_.xml
<!-- 매입발주서 등록 -->
<insert id="insertPrchs" parameterType="prchsVO" useGeneratedKeys="true" keyColumn="prchsId" keyProperty="prchsId">
<selectKey order="BEFORE" keyProperty="prchsId" resultType="string">
SELECT 'PRCHS' || LPAD(NVL(MAX(TO_NUMBER(SUBSTR(NVL(PRCHS_ID, 'PRCHS00001'),6))),0)+1,5,'0') FROM PRCHS
</selectKey>
INSERT INTO PRCHS (
PRCHS_ID,
PRCHS_DT,
PRCHS_AMT,
CNPT_ID,
PRCHS_SE
)
VALUES (
#{prchsId},
#{prchsDt},
#{prchsAmt},
#{cnptId},
'저장'
)
</insert>
2. serviceImpl
serviceImpl에서 insert 시 VO객체를 파라미터로 넘겨서 insert 처리를 한다.
그 후, return값으로 그 VO의 Id값이 저장되어 return 된다.
//매입발주서 작성 - 된다~!!!!!!!!!!!!!!!!!!!!
@Override
public int insertPrchs(PrchsVO prchsVO) {
//insert
prchsMapper.insertPrchs(prchsVO);
logger.info("prchsVO : {}",prchsVO);
String prchsId = prchsVO.getPrchsId();
logger.info("아이디 잘드러완는지,, : " + prchsId);
//결과 담을 변수
int result = 0;
//매입상품 insert하기
for(PrchsGdsVO vo : prchsVO.getPrchsGdsVO()) {
//매입상품 하나씩 꺼내서 insert
vo.setPrchsId(prchsId);
//매입상품 insert
result += prchsMapper.insertPrchsGds(vo);
}
return result;
}
아래처럼 logger로 Id를 찍으면 원래 null값이었던 Id가 저장되어 출력된다.
logger.info("prchsVO : {}",prchsVO);
String prchsId = prchsVO.getPrchsId();
logger.info("아이디 잘드러완는지,, : " + prchsId);
Author And Source
이 문제에 관하여([최종프로젝트] 방금 Insert한 기본키(primary key)가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gksmf6699/최종프로젝트-방금-Insert한-기본키primary-key가져오기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)