

<참고> !
※ (참고)쿼리메소드 , (참고)객체쿼리 => querydsl, @Query 다양한 실습(조인, 그룹함수 등)
§ 주의점 : 메소드명 잘못 작성시 스프링 서버 다운됨
예) 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>
화면출력

