728x90
반응형
1. src/main/resources/templates/mgmt/admin/update_form.html 을 작성한다.
<div class="modal-header">
<h5 class="modal-title">관리자 수정</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form name="update_form" action="/mgmt/admin/update" method="post">
<div class="form-group">
<label>아이디</label>
<input type="text" name="userid" class="form-control" readonly required pattern="[a-zA-Z0-9]+" th:value="${admin.userid}"/>
<input type="hidden" name="id" class="form-control" th:value="${admin.id}" />
</div>
<div class="form-group">
<label>별명 <small>(필수)</small></label>
<input type="text" name="nick" class="form-control" required th:value="${admin.nick}"/>
</div>
<div class="form-group" style="text-align: right">
<input class="btn btn-primary" type="submit" value="관리자 수정" />
</div>
</form>
</div>
2. src/main/java/com/tutorial/xyz/controller/mgmt/AdminController.java 에 다음을 추가한다.
...
// 관리자 수정 폼
@GetMapping("/admin/update_form/{id}")
public String updateForm(@PathVariable("id") Long id, Model model) {
Admin admin = mapper.getAdmin(id);
model.addAttribute("admin", admin);
return "mgmt/admin/update_form";
}
...
3. 이제, 수정 버튼을 클릭하면 수정할 수 있는 폼이 나타나게 될 것이다.
4. 이제, 실제로 수정을 처리하는 루틴을 작성하고 라우터에 등록하자. 그전에 SP_UPDATE_ADMIN 이라는 저장 프로시저부터 만들어야겠지?
CREATE PROCEDURE SP_UPDATE_ADMIN (
i_id INT,
i_nick VARCHAR(255))
BEGIN
UPDATE TB_ADMIN SET nick = i_nick WHERE id = i_id;
END
mysql> CALL SP_LIST_ADMIN();
+-----+---------+-----------+-------+
| id | userid | password | nick |
+-----+---------+-----------+-------+
| 1 | testid1 | passwd101 | nick1 |
| 2 | testid2 | passwd2 | nick2 |
| 3 | testid3 | passwd3 | nick3 |
| 4 | testid4 | passwd4 | nick4 |
| 5 | testid5 | passwd5 | nick5 |
| 9 | testid6 | passwd106 | nick6 |
+-----+---------+-----------+-------+
mysql> CALL SP_UPDATE_ADMIN(1, 'nick101');
mysql> CALL SP_LIST_ADMIN();
+-----+---------+-----------+---------+
| id | userid | password | nick |
+-----+---------+-----------+---------+
| 1 | testid1 | passwd101 | nick101 |
| 2 | testid2 | passwd2 | nick2 |
| 3 | testid3 | passwd3 | nick3 |
| 4 | testid4 | passwd4 | nick4 |
| 5 | testid5 | passwd5 | nick5 |
| 9 | testid6 | passwd106 | nick6 |
+-----+---------+-----------+---------+
5. src/main/resources/mybatis-mapper/AdminMapper.xml에 다음을 추가합니다.
...
<update id="updateAdmin">
CALL SP_UPDATE_ADMIN(#{id}, #{nick})
</update>
...
6. src/main/java/com/tutorial/xyz/mapper/AdminMapper.java 파일에 다음을 추가한다. 위의 XML파일을 사용하지 않으려면, @Update 어노테이션의 주석을 풀어주면 됩니다.
...
// @Update("CALL SP_UPDATE_ADMIN(#{id}, #{nick})")
int updateAdmin(@Param("id") Long id, @Param("nick") String nick);
...
7. src/main/java/com/tutorial/xyz/controller/mgmt/AdminController.java 파일에 다음을 추가한다.
...
// 관리자 수정
@PostMapping("/admin/update")
public String update(@RequestParam("id") Long id, @RequestParam("nick") String nick) {
mapper.updateAdmin(id, nick);
return "redirect:/mgmt/admin";
}
...
8. 수정 작업을 진행해보자. 에러 없이 잘 수행되었길~! *^^*
728x90
반응형
'Framework (Backend) > SpringBoot' 카테고리의 다른 글
(SpringBoot) 비밀번호 단방향암호화(SHA256) 하기 : Spring 2.x.x, MySQL (0) | 2021.11.22 |
---|---|
(SpringBoot) 관리자 삭제하기 : Spring Boot 2.x.x Web Tutorial (0) | 2021.11.22 |
(SpringBoot) 관리자 비밀번호 변경하기 : Spring Boot 2.x.x Web Tutorial (0) | 2021.11.22 |
(SpringBoot) 관리자 추가하기 : Spring Boot 2.x.x Web Tutorial (0) | 2021.11.21 |
(SpringBoot) 관리자 목록 보여주기 : Spring Boot 2.x.x Web Tutorial (0) | 2021.11.19 |