-
[Spring]3/3 게시판 - 목록 보여주기 (selectList)WEB/BACK 2021. 10. 4. 15:32반응형
저번 포스팅에서 간단하게 디비 연동확인을 위해 사용자 총 수 를 가져왔따면 이번에는 사용자 목록을 가져와보겠습니다.
좀 더 깔끔한 경로를 위해 user package 생성을 하였습니다.
결과 미리보기
(참고)경로 변경됨- 변경필요한 부분들..
1. UserDAO 에 return SqlSession.selectOne("com.world.therapy.user.userCount"); 로 변경
2.mybatis-config.xml 에 type="com.world.therapy.user.UserVO" 로 변경폴더 구조
흘러가는 순서
1. 쿼리
2. dao
3. service
4. controller
5. jsp
1. 목록 쿼리작성
사용자목록 = userList추가 해줍니다. resultType은 Map입니다.
(관련포스팅)
2021.05.13 - [WEB/BACK] - [sql] sql문 정리, mybatis에서 sql문 정리, left join 예,date format,마지막 로그인시간
mybatis.sql>test.xml
<mapper namespace="com.world.therapy.user"> <select id="userList" resultType="Map"> SELECT * FROM user; </select> <select id="userCount" resultType="Integer" > SELECT count(*) FROM user; </select> </mapper>
2. dao
목록을 반환해주기위해 List<Map<String, Object>> 형태로 담아옵니다.
그리고 selectList매소드를 이용합니다.
(지난번에 count 를 가져오는건 1개만 가져오는것이여서 selectOne매소드를 사용했었습니다.)
userDAO.java
package com.world.therapy.user; import java.util.List; import java.util.Map; import org.apache.ibatis.session.SqlSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; @Repository public class UserDAO { @Autowired private SqlSession SqlSession; //사용자 목록 public List<Map<String, Object>> getUserList() throws Exception { return SqlSession.selectList("com.world.therapy.user.userList"); } //사용자 총 수 public int getTestValue() throws Exception { return SqlSession.selectOne("com.world.therapy.user.userCount"); } }
3. service
try catch문을 사용하여 dao에 있는 매소드를 사용합니다.
userService.java
@Repository public class UserService { @Autowired UserDAO userDAO; //사용자 목록 가져오기 public List<Map<String, Object>> getUserList() { List<Map<String, Object>> userList = new ArrayList<Map<String, Object>>(); try { userList = userDAO.getUserList(); } catch (Exception e) { e.printStackTrace(); } return userList; } //사용자 총 수 public int getTestValue() throws Exception { return userDAO.getTestValue(); } }
4. controller
addObject를 통해 사용자목록 데이터를 넣어서 jsp로 보냅니다.
url주소는 value 값에 적혀있는 userList.do 입니다.
@Controller public class UserController { @Autowired UserService userService; @RequestMapping(value = "userList.do", method = RequestMethod.GET) public ModelAndView goTestPage(Model model, HttpServletRequest request, UserVO userVO) { //사용자 목록 가져오기 List<Map<String, Object>> userList = new ArrayList<Map<String, Object>>(); //사용자 총 수 int result = 0; try { userList = userService.getUserList(); result = userService.getTestValue(); } catch (Exception e) { e.printStackTrace(); } ModelAndView mv = new ModelAndView(); mv.setViewName("/user"); mv.addObject("userList", userList); mv.addObject("userCount", result); return mv; } }
5. jsp
jstl foreach 를 통해 table 을 생성해줍니다.
(관련 포스팅)
2021.10.04 - [WEB/FRONT] - [JSTL] JSTL 셋팅하는법 (pom.xml, spring, eclipse, maven)
2021.04.28 - [WEB/FRONT] - [JSTL] , , 태그 정리 (feat. jstl if문, forEach 문, 게시판 예시)
user.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <style> body { margin:5% } table, th, td { border: 1px solid black; border-collapse: collapse; } table { width: 70%; text-align:center; margin:auto; } </style> </head> <body> <h1>사용자 목록</h1> <h2>총 사용자 : ${userCount } 명</h2> <table class="table"> <thead> <tr> <th>No</th> <th>ID</th> <th>이름</th> <th>핸드폰 번호</th> </tr> </thead> <tbody> <c:choose> <c:when test="${fn:length(userList) !=0 }"> <c:forEach var="item" items="${userList}" varStatus="status"> <tr> <td>${status.count }</td> <td><c:out value="${item.id}" /></td> <td><c:out value="${item.name}" /></td> <td><c:out value="${item.phone}" /></td> </tr> </c:forEach> </c:when> <c:otherwise> <tr> <td colspan="4" >조회된 정보가 없습니다.</td> </tr> </c:otherwise> </c:choose> </tbody> </table> </body> </html>
여기까지 게시판 - 목록 작업 해보았습니다. 감사합니다.
반응형'WEB > BACK' 카테고리의 다른 글
[java] java.lang.NullPointerException 원인/해결 (0) 2021.12.03 [JAVA] list 에서 특정 list에 든 데이타들 삭제하기(arrayList, remove) (0) 2021.11.29 [Spring]2/3 spring 프로젝트에 +mybatis + mariadb연동 (3) 2021.10.03 [Spring]1/3 eclipse에서 spring mvc project 생성+tomcat 화면 띄우기 (mac,openJDK11) (0) 2021.10.03 톰캣 버전 정보 확인 cmd (0) 2021.07.05