간펴니
간편 자바프로그래밍
간펴니
전체 방문자
오늘
어제
  • 전체보기 (185)
    • 알고리즘 (2)
    • JAVA (69)
      • 이펙티브 자바 (47)
      • JAVA 병렬프로그래밍 (5)
      • 자바 (17)
    • SPRING (60)
      • Spring (12)
      • IceWater Community (37)
      • Homme Shop (10)
      • 토비의 스프링 (1)
    • SPRING BOOT (4)
      • WhiteRecord (7)
    • 오류 (9)
    • DB (10)
      • ORACLE (5)
      • MYSQL (1)
      • MYBATIS (4)
      • JPA (0)
      • 대용량 데이터 베이스 (0)
      • SQL (0)
    • FRONT (8)
      • JSP (2)
      • JavaScript (2)
      • Jquery (3)
      • Thymeleaf (1)
    • AWS (6)
    • JNI (10)
    • 회고 (0)
    • MQ (0)
    • Radis (0)
    • Git (0)
    • Docker (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 블로그 컨셉 변경

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
간펴니

간편 자바프로그래밍

SPRING/IceWater Community

[스프링] 게시글 첨부파일 조회 구현 설명(select) (2)

2021. 8. 30. 10:41
728x90

 

	<select id="selectFileList" parameterType="int"
		resultType="hashMap">
		SELECT FILE_NO,
		ORG_FILE_NAME,
		ROUND(FILE_SIZE/1024,1) AS FILE_SIZE
		FROM MP_FILE
		WHERE BNO = #{BNO}
		AND DEL_GB = 'N'
		ORDER BY FILE_NO ASC
	</select>

먼저 Mapper를 작성해준다.

 

필요한 파라미터는 BNO(게시글 PR)이기 때문에 파라미터 타입을 int로 받고,

결과값은 첨부파일의 파라미터인 Map으로 넘긴다.

 

파일사이즈는 1024당 1로 나누어 kb로 계산하고

삭제여부가 N인 파일을 FILE_NO(파일PR)을 기준으로 오름차순으로 정렬한다.

 


 

DAO작성

BoardDAO
   
	public List<Map<String, Object>> selectFileList(int bno) throws Exception;
	
   
   
BoardDAOImpl  
  
	@Override
	public List<Map<String, Object>> selectFileList(int bno) throws Exception {
		// TODO Auto-generated method stub
		return sqlSession.selectList("boardMapper.selectFileList", bno);
	}​

조회에 필요한 bno값을 매개변수로 잡아주고, Mapper 위치와 파라미터를 List로 넣어준다.


BoardService

	public List<Map<String, Object>> selectFileList(int bno) throws Exception;
    
    
 
BoardServiceImpl

	@Override
	public List<Map<String, Object>> selectFileList(int bno) throws Exception {
	
		return dao.selectFileList(bno);
	}

서비스도 마찬가지로 컨트롤러에서 받아온 bno를 매개변수,파라미터로 넣어준다


컨트롤러의 글 내용 조회(글 상세페이지) 부분에 코드를 추가해준다.

첨부파일조회는 당연히 해당 게시글의 내용부분에서 확인하기 때문에, 같은 컨트롤러에 담아준다


		List<Map<String, Object>> fileList = service.selectFileList(boardVO.getBno());
		model.addAttribute("file", fileList);

글 내용 확인시에 받아오는 파라미터들의 getter&setter인 boardVO에서 bno값을 get으로 구해서

파일조회 서비스에 파라미터로 넣어준다. service-dao-mapper-model 순으로 이어져서 나오는 값을

"file" 이라는 키에 담아서 뷰단으로 넘겨준다.

 


글 상세내용 뷰단의 원하는 위치에 forEach문으로 파일들을 모두 가져온다.

 

<span>파일 목록</span>
				<div class="form-group" style="border: 1px solid #dbdbdb;">
					<c:forEach var="file" items="${file}">
						<a href="#" onclick="fn_fileDown('${file.FILE_NO}'); return false;">${file.ORG_FILE_NAME}</a>(${file.FILE_SIZE}kb)<br>
					</c:forEach>
				</div>

파일 다운로드 기능을 위한 onclick을 미리 넣어놓았다.

그 후

 

글 상세내용값을 가져오는 form 태그에 

 

<input type="hidden" id="FILE_NO" name="FILE_NO" value="">

뷰단에서 submit시에 파일번호를 컨트롤러로 넘겨주는 코드를 같이 넣어주도록 하자.

나중에 파일번호를 기준으로 첨부파일 수정/삭제를 하기 위해서다. 

728x90
저작자표시 (새창열림)

'SPRING > IceWater Community' 카테고리의 다른 글

[스프링] 첨부파일 다중파일 구현, 수정,삭제 로직의 설명(4)  (2) 2021.08.30
[스프링]게시판 첨부파일 다운로드 (3)  (1) 2021.08.30
[스프링]게시판 첨부파일 업로드 구현 설명(insert) (1)  (1) 2021.08.30
[스프링]-댓글 수 구현 : 동기,비동기 방식을 사용할 때의 구현, 차이점과 2가지의 댓글 수 변경 로직  (0) 2021.08.26
[스프링] 게시글 조회수와 트랜잭션 구현  (0) 2021.08.25
    'SPRING/IceWater Community' 카테고리의 다른 글
    • [스프링] 첨부파일 다중파일 구현, 수정,삭제 로직의 설명(4)
    • [스프링]게시판 첨부파일 다운로드 (3)
    • [스프링]게시판 첨부파일 업로드 구현 설명(insert) (1)
    • [스프링]-댓글 수 구현 : 동기,비동기 방식을 사용할 때의 구현, 차이점과 2가지의 댓글 수 변경 로직
    간펴니
    간펴니
    개발공부 기록하는 곳

    티스토리툴바