이 튜토리얼의 소스는 https://github.com/gauryan/springboot2-tutorial 에서도 확인할 수 있습니다.
관리자 목록을 보았으니, 이제는 새로운 관리자를 추가해봅시다.
1. 저장 프로시저 (SP_INSERT_ADMIN) 생성
CREATE PROCEDURE SP_INSERT_ADMIN (
i_userid VARCHAR(255),
i_password VARCHAR(255),
i_nick VARCHAR(255))
BEGIN
INSERT INTO TB_ADMIN(userid, password, nick) VALUES(i_userid, i_password, i_nick);
END
mysql> SELECT * FROM TB_ADMIN;
+-----+---------+----------+-------+
| sno | userid | password | nick |
+-----+---------+----------+-------+
| 1 | testid1 | passwd1 | nick1 |
| 2 | testid2 | passwd2 | nick2 |
| 3 | testid3 | passwd3 | nick3 |
| 4 | testid4 | passwd4 | nick4 |
| 5 | testid5 | passwd5 | nick5 |
+-----+---------+----------+-------+
mysql> CALL SP_INSERT_ADMIN('testid6', 'passwd6', 'nick6');
mysql> SELECT * FROM TB_ADMIN;
+-----+---------+----------+-------+
| sno | userid | password | nick |
+-----+---------+----------+-------+
| 1 | testid1 | passwd1 | nick1 |
| 2 | testid2 | passwd2 | nick2 |
| 3 | testid3 | passwd3 | nick3 |
| 4 | testid4 | passwd4 | nick4 |
| 5 | testid5 | passwd5 | nick5 |
| 6 | testid6 | passwd6 | nick6 |
+-----+---------+----------+-------+
2. 관리자 입력 양식을 만들자. src/main/resources/templates/mgmt/admin/insert_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="insert_form" action="/mgmt/admin/insert" method="post">
<div class="form-group">
<label>아이디 <small>(필수)</small></label>
<input type="text" name="userid" class="form-control" required>
</div>
<div class="form-group">
<label>비밀번호 <small>(필수)</small></label>
<input type="password" id="password" name="passwd1" class="form-control" required>
</div>
<div class="form-group">
<label>비밀번호 확인 <small>(필수)</small></label>
<input type="password" name="passwd2" class="form-control" required>
</div>
<div class="form-group">
<label>별명 <small>(필수)</small></label>
<input type="text" name="nick" class="form-control" required>
</div>
<br>
<div class="form-group" style="text-align: right">
<input class="btn btn-primary" type="submit" value="관리자 추가" />
</div>
</form>
</div>
3. src/main/java/com/tutorial/xyz/controller/mgmt/AdminController.java 에 다음 코드를 추가한다.
...
// 관리자 추가 폼
@GetMapping("/mgmt/admin/insert_form")
public String insertForm() {
return "mgmt/admin/insert_form";
}
...
4. 관리자 추가 버튼을 클릭하면 모달 다이얼로그 박스 형식의 입력 양식이 나올 것이다. 여기에서는 bootstrap 과 jquery를 이용해서 Modal 박스를 사용하였다. list.html 하단에 보면 관련 코드들이 있으니 참고 바란다.
5. src/main/resources/mybatis-mapper/AdminMapper.xml 파일에 다음을 추가한다. AdminMapper.java 에서 @Insert 어노테이션을 사용하는 경우에는 설정하지 않아도 된다.
...
<insert id="insertAdmin">
CALL SP_INSERT_ADMIN(#{userid}, #{password}, #{nick})
</insert>
...
6. src/main/java/com/tutorial/xyz/mapper/AdminMapper.java 파일에 다음을 추가한다.
// @Insert("CALL SP_INSERT_ADMIN(#{userid}, #{password}, #{nick})")
int insertAdmin(@Param("userid") String userid, @Param("password") String password, @Param("nick") String nick);
7. src/main/java/com/tutorial/xyz/controller/mgmt/AdminController.java 파일에 다음을 추가한다. Form 값을 받아서 처리하는 방법이 여러가지가 있는데, 여기에서는 가장 간편한 @RequestParam 어노테이션을 이용하였다.
// 관리자 추가
@PostMapping("/admin/insert")
public String insert(@RequestParam("userid") String userid, @RequestParam("passwd1") String passwd1, @RequestParam("passwd2") String passwd2, @RequestParam("nick") String nick) {
String password;
if(!passwd1.equals(passwd2)) {
// 비밀번호가 다른 경우, 관리자목록으로 돌아간다.
return "redirect:/mgmt/admin";
}
password = passwd1;
mapper.insertAdmin(userid, password, nick);
// 관리자 추가 성공
return "redirect:/mgmt/admin";
}
8. 코드 작성은 완료되었으니, 실제 화면에서 관리자를 등록해보면 목록에 표시되는 것을 볼 수 있을 것이다.
'Framework (Backend) > SpringBoot' 카테고리의 다른 글
(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.19 |
Spring 프로젝트 생성하기 : Spring Boot 2.x.x Web Tutorial (0) | 2021.11.17 |
(SpringBoot) 개발환경 구성하기 : Spring Boot 2.x.x Web Tutorial (0) | 2021.11.17 |
댓글