정리노트/팀프로젝트

[스프링] 회원 목록 불러오기

망고고래 2024. 2. 19. 17:25

DTO를 여러 개 불러올 때는 List에 DTO를 담아서 출력한다.

 

1. 뷰 페이지 작성

<div class="container" style="padding: 180px 0;">
            <h2>회원관리</h2>
            <hr class="my-4">
            <table class="table mb-5">
                <tr>
                    <th>아이디
                    <th>이름
                    <th>닉네임
                    <th>이메일
                    <th>상세정보
                </tr>
                    <c:forEach items="${member_list}" var="member">
                    <tr>
                        <td>${member.mem_id}
                        <td>${member.mem_name}</td>
                        <td>${member.mem_nickname}
                        <td>${member.mem_email}
                        <td><a href="<c:url value="/staff/members/detail?id=${member.mem_id}"/>" >상세정보</a>
                    </tr>
                    </c:forEach>
            </table>
        </div>

 

c:forEach 안의 items에는 컨트롤러에서 addAttribute로 넣을 key 값을 넣는다.

상세정보를 클릭하면 회원 개별 정보가 나오는 페이지로 이동하도록 연결했다.

 

2. RowMapper 작성

package com.springmvc.repository;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.springframework.jdbc.core.RowMapper;

import com.springmvc.domain.Member;

public class MemberMapper implements RowMapper<Member>{

	@Override
	public Member mapRow(ResultSet rs, int rowNum) throws SQLException {
		Member m = new Member();
		m.setMem_id(rs.getString(1));
		m.setMem_pw(rs.getString(2));
		m.setMem_name(rs.getString(3));
		m.setMem_nickname(rs.getString(4));
		m.setMem_phone(rs.getString(5));
		m.setMem_email(rs.getString(6));
		m.setMem_addr(rs.getString(7));
		m.setMem_addr2(rs.getString(8));
		m.setJoin_date(rs.getString(9));
		
		return m;
	}

}

 

 

3. Repository 작성

	public List<Member> all_member_list() {
		String sql = "SELECT * FROM user_mem";
		List<Member> member_list = template.query(sql, new MemberMapper());
		return member_list;
	}

 

1)테이블 안의 모든 행을 불러오는 sql문을 작성한다.

2)DTO 객체를 담는 List를 만들어 sql문의 결과를 담는다.

3)List를 리턴한다.

 

4. Service 작성

	public List<Member> all_member_list() {
		return memberRepository.all_member_list();
	}

 

 

 

5. Controller 작성

	@GetMapping("/members")
	public String all_member_list(Model model) {
		System.out.println("StaffController.get_members() 도착");
		List<Member> list = memberService.all_member_list();
		model.addAttribute("member_list", list);
		return "/member/staff_members";
	}

 

1)Service의 리턴값을 List에 넣어 담는다.

2)List를 addAttribute()를 사용해 model에 담는다.(key값은 jsp 페이지에서 <c:forEach> 태그 안의 items 속성에 넣은 것과 통일한다.

3)jsp 페이지를 리턴한다.

 

 

 

다음 목표: 출력되는 개수 제한하기, 일반적인 웹페이지처럼 1페이지, 2페이지 ... 등으로 넘기면서 조회할 수 있게 하기