정리노트/팀프로젝트
[스프링] 회원 목록 불러오기
망고고래
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페이지 ... 등으로 넘기면서 조회할 수 있게 하기