안녕하세요, 코린이의 코딩 학습기 채니 입니다.
개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.
POST
Controller
DevRestController
@RequestBody
- 요청 메세지의 json데이터를 MessageConverter에 의해 java로 변환
@PostMapping
public ResponseEntity<?> dev(@RequestBody Dev dev) {
log.debug("dev = {}", dev);
return null;
}
@콘솔출력값
DEBUG: com.ce.spring2.demo.controller.DevRestController - dev = Dev(no=0, name=홍길동그랑땡, career=3, email=hongdong@gmail.com, gender=F, lang=[C, Python], createdAt=null)
json으로 넘겨주었지만 @RequestBody에 의해서 자바 객체로 잘 변환된 것을 확인할 수 있습니다.
insert처리
@PostMapping
public ResponseEntity<?> dev(@RequestBody Dev dev) {
log.debug("dev = {}", dev);
int result = demoService.insertDev(dev);
Dev savedDev = demoService.selectOneDev(dev.getNo());
return ResponseEntity.status(HttpStatus.CREATED).body(savedDev);
}
demo-mapper.xml
<insert id="insertDev">
insert into dev values(seq_dev_no.nextval, #{name}, #{career}, #{email}, #{gender}, #{lang}, default)
<selectKey order="AFTER" resultType="_int" keyProperty="no">select seq_dev_no.currval from dual</selectKey>
</insert>
selectKey를 이용하여 현재 추가된 시퀀스 번호(마지막 발급 번호)를 가져와 no 컬럼에 set 시켜주었습니다.
따라서 저장된 Dev 정보를 다시 no로 가져올 수 있는 것이죠.
HttpStatus.CREATED는 insert 등에 의해 성공적으로 처리 되었을 때 201을 반환해줍니다.
201번이 반환된 것을 확인할 수 있으며, 추가되었던 Dev를 다시 리턴 받았습니다. (no, createdAt 컬럼 추가됨!)
'Java > Spring' 카테고리의 다른 글
Spring) Rest API - Delete (0) | 2022.09.07 |
---|---|
Spring) Rest API - PUT/PATCH (set태그) (0) | 2022.09.07 |
Spring) Rest API - 개요, GET (java.time 패키지 처리 관련 의존 설정) (0) | 2022.09.06 |
Spring) Ajax - ResponseEntity를 통해 응답 (0) | 2022.09.06 |
Spring) Ajax - MessageConverter와 @ResponseBody를 통해 응답 (0) | 2022.09.06 |