JPA_ dto

김지영·2024년 3월 29일

jpa

목록 보기
17/18

1. 오라클 sql 의 결과를 담을 DTO 인터페이스

1) 그룹함수 결과로

: sumVar, avgVar, maxVar, minVar
=> getter 형태로 작성 :
=> getSumVar(), getAvgVar(), getMaxVar(), getMinVar()

2) DTO 디자인패턴 : 활용

1) sql 결과와 entity 클래스의 속성명이 다를경우
2) sql 결과는 같으나 일부 속성(필드) 화면에 표시하기 싫을때(보안목적)
=> entity 에 결과를 담았음
=> (참고) 일부 회사에서는 무조건 DTO 클래스 만들어서 사용하도록 권고

public interface DeptGroupDto {
    //    getSumVar(), getAvgVar(), getMaxVar(), getMinVar()
    Integer getSumVar();
    Integer getAvgVar();
    Integer getMaxVar();
    Integer getMinVar();
}

-DeptController
3) group

   @GetMapping("/dept/groupfunc")
   public String selectByGroupFunc(
           Model model
   ) {
//        DB 서비스 함수 실행
       List<DeptGroupDto> list
               = deptService.selectByGroupFunc();
       model.addAttribute("list", list);
       return "exam01/dept/query/dept_group.jsp";
   }

-DeptService

3) group

    public List<DeptGroupDto> selectByGroupFunc() {
        List<DeptGroupDto> list
                = deptRepository.selectByGroupFunc();
        return list;
    }

-jsp
<%--본문--%>

<div class="container">
    <%--    todo: 테이블 반복문 시작--%>
    <table class="table">
        <tbody>
        <c:forEach var="data" items="${list}">
            <tr>
                <td>${data.avgVar}</td>
                <td>${data.maxVar}</td>
                <td>${data.minVar}</td>
                <td>${data.sumVar}</td>
            </tr>
        </c:forEach>

        </tbody>
    </table>
    <%--    todo: 테이블 반복문 끝--%>

</div>

-화면출력

profile
그냥 졍이라구하자

0개의 댓글