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 테스트