본문 바로가기
Java/Spring

Spring) Rest API - PUT/PATCH (set태그)

by 박채니 2022. 9. 7.
안녕하세요, 코린이의 코딩 학습기 채니 입니다.
개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.

 

PUT - 모두 수정

 

Controller

DevRestController

@PutMapping
public ResponseEntity<?> updateDev(@RequestBody Dev dev) {
    log.debug("dev = {}", dev);
    int result = demoService.updateDev(dev);
    Dev updatedDev = demoService.selectOneDev(dev.getNo());

    return ResponseEntity.ok().body(updatedDev);
}

@콘솔출력값
DEBUG: com.ce.spring2.demo.controller.DevRestController - dev = Dev(no=42, name=홍길동그라미, career=30, email=hongdong@gmail.com, gender=M, lang=[C, Python, Java], createdAt=null)

 

아래 데이터로 변경 처리 해보겠습니다.

변경 처리 후 다시 조회하여 리턴한 결과, 잘 변경 된 것을 확인할 수 있습니다.

 


PATCH - 일부 수정

 

Controller

DevRestController

@PatchMapping
public ResponseEntity<?> updatePartialDev(@RequestBody Dev dev) {
    log.debug("dev = {}", dev);
    int result = demoService.updatePartialDev(dev);
    Dev updatedDev = demoService.selectOneDev(dev.getNo());

    return ResponseEntity.ok().body(updatedDev);
}

 

Service

DemoService interface 생략

DemoServiceImpl

@Override
public int updatePartialDev(Dev dev) {
	return demoDao.updatePartialDev(dev);
}

 

Dao

DemoDao interface

int updatePartialDev(Dev dev);

 

demo-mapper.xml

<set>

- set구문의 마지막 , 를 제거

<update id="updatePartialDev">
    update 
        dev 
    <set>
        <if test="name != null and name != ''">			
            name = #{name}, 
        </if>
        <if test="career != null and career != 0">	
            career = #{career},
        </if> 
        <if test="email != null and email != ''">	
            email = #{email},
        </if> 
        <if test="gender != null and gender != ''">	
            gender = #{gender},
        </if> 
        <if test="lang != null">	
            lang = #{lang} 
        </if>
    </set>
    where 
        no = #{no}
</update>

<set> 태그는 set구문의 마지막 ,를 제거해주어 문법 오류를 방지해줍니다.

 

 

아래 데이터로 변경 처리 해보겠습니다.

 

변경 처리 후 다시 조회하여 리턴한 결과, 잘 변경 된 것을 확인할 수 있습니다.