일정의 삭제의 경우는 두가지 경우가 있다.
1. DelNy를 0 또는 1로 주어 삭제 여부를 선택하는것 (update)라고봐도 무방하지만, 쓰임은 삭제이다
2. 데이터베이스 안의 데이터를 모두 날려버리는 삭제가 있다.
DelNy를 이용한 삭제
planMpp.xml
<update id="updateDelete">
UPDATE
hybdPlan <!-- 진짜 중요한게 테이블 이름틀리면 505 Error 불변임 -->
SET
hyplDelNy = 1
WHERE
1 = 1
AND hyplSeq = #{hyplSeq}
</update>
다음과 같이 hyplDelNy = 1 로 바꿔주면서
일정 리스트에는 안뜨게 하는 방법이다.
요즘은 이 방법을 많이한다고 들었다.
<select id="selectList" resultMap="resultMapObj">
SELECT
a.hyplSeq
,a.hyplName
,a.hyplDefaultNy
,a.hyplDelNy
,a.hyplDate
,a.hyplEndDate
,a.hyplDesc
,a.hyplMemberName
,b.hyspSeq
FROM
hybdPlan AS a
LEFT JOIN hybdSpace AS b ON a.hyspSeq = b.hyspSeq
WHERE 1 = 1
AND b.hyspSeq = ${hyspSeq}
AND a.hyplDelNy = 0
</select>
다음 selectList 코드를 보면
hyplDelNy = 0 만 끌어 오도록 조건을 주기 때문에
DelNy가 1로 바뀌게되면 일정에 나오지 않게 된다.
planList.jsp
<a href="javascript:goNele(<c:out value="${rt.hyplSeq}"/>)" class="btn btn-danger" style="float: left">삭제하기</a>
이건 버튼 이고,
goNele = function(seq) {
$("#hyplSeq").val(seq);
$("#planEdit").attr("action", "/plan/planListNele");
$("#planEdit").submit();
};
실질적으로 삭제 명령은 여기서 주는것이다.
goNele를 주었을때 planListNele로 넘기는 명령
planController.java
@RequestMapping(value = "/plan/planListNele")
public String planListNele(@ModelAttribute PlanVo vo, Plan dto ,RedirectAttributes redirectAttributes, HttpSession httpSession) throws Exception {
System.out.println("####### 삭제 시작 #######");
vo.setHyplSeq(dto.getHyplSeq());
service.updateDelete(vo); // 데이터를 받아오고
redirectAttributes.addFlashAttribute("vo", vo);
return "redirect:/plan/planList"; // 업데이트 해주는 영역
}
이것이 바로 삭제해주는 영역이라고 볼 수 있다.
여기서 명령을 받아서
planServiceImple로 갔다가
planDao로 이동되면서 삭제된다.
물론 Plan.java 와 planVo.java 에도
객체가 선언 되어야 있어야한다.
결과값
클릭
삭제하기 클릭
자바스크립트를 다음과 같이 주었다.
데이터가 이렇게 없어진걸 확인 할 수 있다.
To be continue..
'Project > Hey Buddy' 카테고리의 다른 글
[헤이버디] 본인이 공유된 일정만 보이게 하기 (0) | 2022.06.16 |
---|---|
[헤이버디] Ajax를 이용하여 상세정보 불러오기 (0) | 2022.06.04 |
[헤이버디] 상세일정에서 POST방식으로 수정 시키기 (0) | 2022.06.03 |
[헤이버디] DateTimePicker 달력 적용시키기 (3분 소요) (0) | 2022.06.03 |
[헤이버디] Ajax를 이용하여 데이터를 넣기 (0) | 2022.05.27 |