JPA_ 기타

김지영·2024년 3월 28일

jpa

목록 보기
16/18
  1. 프로젝트 생성

    -> 시큐리티는 로그인할때만 선택하기!

  1. 패키명 수정

<참고> !

※ (참고)쿼리메소드 , (참고)객체쿼리 => querydsl, @Query 다양한 실습(조인, 그룹함수 등)

1. @Query : sql 작성

2. 쿼리메소드 : 함수명으로 sql문을 작성 : 단어와 단어 사이는 대문자로 작성(대소문자구분)

§ 주의점 : 메소드명 잘못 작성시 스프링 서버 다운됨

) findAllByOrderByDnoDesc
//           => findAll : 전체조회 (find(select) + All(*))
//           => OrderBy : 정렬
//           => Dno     : 속성(필드) == 대상 컬럼명
//           => Desc    : 내림차순 [Asc]



-DeptRepository

@Repository
public interface DeptRepository extends JpaRepository<Dept, Integer> {

    //    (참고) 쿼리메소드 == @Query
//    TODO: 1) 전체조회 + 정렬(내림차순)
    List<Dept> findAllByOrderByDnoDesc();
}

--> 함수명 중요! 대소문자도 똑같이


-DeptService

@Service
public class DeptService {
    @Autowired
    DeptRepository deptRepository; // DI

    //    TODO: 쿼리메소드 예제
    public List<Dept> findAllByOrderByDnoDesc() {
        List<Dept> list
                = deptRepository.findAllByOrderByDnoDesc();
        return list;
    }
}

-DeptController

@Slf4j
@Controller
@RequestMapping("/exam01")
public class DeptController {

    @Autowired
    DeptService deptService;  // DI

    //    TODO: 쿼리메소드 예제
//     1) 전체조회 + 정렬(dno 내림차순)
    @GetMapping("/dept/desc")
    public String getDeptAllDesc(
            Model model
    ) {
//        DB 전체조회 + 정렬 함수 실행
        List<Dept> list
                = deptService.findAllByOrderByDnoDesc();

//        jsp 전송
        model.addAttribute("list", list);
        return "exam01/dept/query-method/dept_all_desc.jsp";
    }
}

-dept_all_desc

<body>
<%--머리말--%>
<jsp:include page="../../../common/header.jsp"/>


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

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

</div>


<%--꼬리말--%>
<jsp:include page="../../../common/footer.jsp"/>

</body>


2) 전체조회 + 부서명(dname) 내림차순

  • 화면출력

profile
그냥 졍이라구하자

0개의 댓글