회원정보 수정에 관련된 기능을 구현하는데,
사용자가 입력하지 않은 값은 그대로 두고 입력한 값만 업데이트해야 했다.
처음에는 항목별로 다 버튼을 만들려고 했는데 그럼 너무 번거로워지는거같아서
버튼을 하나로 통합하고, 버튼을 눌렀을 때 입력하지 않은 값은 원래 값을 유지하고 입력한 값만 업데이트 되게 했다.
소스코드
1
2
3
4
5
6
7
8
9
10
|
UPDATE MY_TABLE
<trim prefix="SET" suffixOverrides=",">
<if test="name != '' "> USER_NM = #{name},</if>
<if test="email != '' "> USER_EMAIL_ADDR = #{email},</if>
<if test="phone != '' "> USER_HP_NO = #{phone},</if>
<if test="work != '' "> USER_WORK_PLACE = #{work},</if>
<if test="major != '' "> USER_EXPERT_FIELD = #{major},</if>
<if test="info != '' "> USER_INFO = #{info},</if>
</trim>
WHERE USER_NO = #{userNo}
|
cs |
(mybatis에서 사용함)
trim으로 ',' 문자를 제거해주는 이유는 맨 처음 if문이 거짓이면 ',' 만 남는데 그럼 오류가 발생해서
suffixOverrides 옵션으로 맨 앞에 있는 문자를 지우게했다.
'개발 > 데이터베이스' 카테고리의 다른 글
[MYSQL] auto_increment가 있는 테이블에 값 넣기 (0) | 2020.10.06 |
---|