본문 바로가기
✨ Back-end/Servlet

[Servlet / JSP / SQL] 회원 관리 폼 만들기 (2) - INSERT(회원 등록)

by 환풍 2023. 2. 22.
728x90

 

이전 포스팅에서 DB연동 후 결과 페이지를 만드는데 까지 해보았다.

login_result.jsp

result 값으로 받아온 member에 들어있는 id와 pw가 일치하지 않으면 자바스크립트를 이용해 '로그인 실패'를 띄우고,

그렇지 않다면 '로그인 성공'을 띄운다.

loginForm.do로 갈 서블릿과 memberList.do로 갈 서블릿을 만들어주자.

 

MemberController.java 서블릿

loginForm.do에서는 단순히 같은 페이지로만 돌아가게끔 구현하였고,

memberList.do는 쿼리를 작성한 값을 가져와야한다. 따라서 젤 먼저 쿼리를 쓰러 mapper로 가자.

 

member-mapper.xml

select 쿼리는 반드시 resultMap을 가져온다는 것을 다시 한번 명심하자.

쿼리문을 이렇게 작성해주었고 별다른 비교는 없다.

이 쿼리를 사용할 메소드를 선언하러 가자.

 

MemberService 인터페이스

쿼리 select id를 받아와 메소드를 만들었다. 매개변수는 빈값으로 채울 값이 없기 때문에 없다.

return 타입은 쿼리 실행결과 데이터 어떻게 나오는지 상상해보자. 여러개 나오니 List를 써주었다.

다음으론 Impl로 가주자.

 

MemberServiceImpl

여기서 회원 목록 조회하는 쿼리를 실행시킬 것이다.

sqlSession. 이후 쿼리가 여러개 나올 것이니 selectList를 써준다. 이후 ( ) 안에는 해당 쿼리 id를 써준다.

쿼리에 채워 줄 빈 값( #{자바클래스 변수} ) 이 없으므로, 두번째 매개변수 자리는 생략한다.

MemberDTO에 데이터가 여러줄 조회 되니까, 또 목록조회는 리턴타입 무조건 List<>이다.

이후 sqlSession.commit();를 해서 마무리해주고, return은 list로 바꿔준다.

 

여기까지 해주면, 컨트롤러 MemberController로 가서

위처럼 코드짜줄 수가 있다...

 

member_list.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table>
    <tr>
        <td>아이디</td>
        <td>이름</td>
        <td>성별</td>
    </tr>
    <c:choose>
        <c:when test="${list.size() eq 0 }">
            <tr>
                <td colspan="3">등록된 회원이 없어요.</td>
            </tr>
        </c:when>
        <c:otherwise>
            <c:forEach items="${list }" var="member">
                <tr>
                    <td>${member.memId }</td>
                    <td><a href="member_detail.do?memId=${member.memId }">${member.memName }</a></td>
                    <td>${member.gender }</td>
                </tr>
            </c:forEach>
        </c:otherwise>
    </c:choose>
</table>
</body>
</html>
cs

id와 pw를 문자열로 받아와 MemberDTO 의 member라는 객체에 넣어서 join.jsp로 값을 전달해준다.

forEach문을 이용해 등록한 회원의 리스트들을 쫘르륵 뽑아주는 코드를 작성했다.

 

 

 MemberController

 

이어서 바로 회원등록 후 로그인  폼도 만들었다.

 

page만 join.jsp로 주고 member-mapper.xml로 넘어갔다.

이곳에서 회원가입 쿼리를 INSERT INTO로 짜주었고, VALUES 값의 #{자바 클래스 변수} 를 5개 만들었다.

이후 다시 service의 MemberService 인터페이스로 간다.

MemberService.interface

 servcie의 멤버서비스는에서  void insertMember(MemberDTO memberDTO) 

자료형 void를 받은 이유가 자료를 넘겨주는게아니고 그냥 받기만 하기 때문에 void이다.

 

MemberServiceImpl 클래스

 

 


이렇게 까지 하고, 회원가입하고 로그인, 멤버 목록이 나타나는지 확인해보자.

일단 데이터베이스에서 BASIC_MEMBER를 조회해보아도 아무런 정보가 뜨지 않았다.

 

login.jsp

login.jsp

회원가입을 눌러 회원가입 폼으로 이동해주자.

join.jsp

등록을 눌러 DB와 연동됬는지 확인한다.

 

 

다시한번 오라클에서 조회하니 값을 잘 받아 온것을 확인할 수 있다

 


다음 포스팅은 아래와 같이 등록한 회원을 상세조회하는 페이지와 쿼리를 만들어 볼 것이다.

 

만약 아무도 없다면 이와 같이 뜰 것이다.

 

 

하지만 위에서 만들었듯이 회원가입 한 회원이 member_list.jsp에 떠있다.

 

다음 포스팅에서는 이름에 환풍을 클릭했을때 상세정보 보기를 작성하려고한다.

반응형

댓글