Back-End/REST with spring boot basic

10. hero put method

728x90

PERSISTENCE

    @Update({"<script>",
            "UPDATE hero",
            "<trim prefix='set' suffixOverrides=','>",
            "<if test='name!=null'>name=#{name},</if>",
            "<if test='email!=null'>email=#{email},</if>",
            "<if test='sex!=null'>sex=#{sex},</if>",
            "<if test='country!=null'>country=#{country},</if>",
            "<if test='address!=null'>address=#{address},</if>",
            "<if test='power!=null'>data_value3=#{power},</if>",
            "</trim>",
            "WHERE hero_id = #{hero_id}",
            "</script>"})
    int updateHero(HeroVO hero);

update 되는 property가 있을수도 있고 없을수도 있기 때문에 if 구문으로 null여부를 체크한다. 그리고, update 구문을 만들때 set key1 = value1, key2 = value2, 이런식으로 만들면 맨 뒤에 콤마는 없어야 한다. 그러므로 trim 구문을 사용하여 prefix 는 set으로 맨 앞에 set을 위치 시키고 맨뒤에 콤마는 없애라는 suffixOverrids=”,” 구문을 맨 뒤에 넣는다.

CONTROLLER

@PutMapping("/hero")
public ResultVO modifyHero(@RequestBody HeroVO hero) {
  int result = heroMapper.updateHero(hero);
  if ( result > 0) {
  	return new ResultVO(0, "success");
  } else {
  	return new ResultVO(100, "fail");
  }
}

프로토콜 유알엘은 /api/hero이고 메서드는 put, 입력은 json, 출력은 json이다.

POSTMAN 테스트