*자바로 작성시에는 소문자로 작성해주어야 함!
코딩순서 : model(테이블과 비슷) -> repository
entity -> BaseTimeEntity 클래스 생성
공통 컬럼이 있을시에는
@MappedSuperclass 와 @EntityListeners(AuditingEntityListener.class) 어노테이션을 달아주고 추상클래스를 달아 상속시켜준다.



=> 엔티티명 : DB 와 연결될 엔티티 클래스명
=> 기본키속성자료형 : 엔티티 클래스의 기본키 속성 자료형 명시
=> JPA 기본 함수 사용 가능
▶ CRUD 용어 :
C(Create==Insert), R(Read==Select)
U(Update==Update), D(Delete=Delete)
DML(데이터 조작어) 문임

-DeptService
@Service
public class DeptService {
// DB CRUD 클래스 받기 : JPA 제공 함수 사용 가능
@Autowired
DeptRepository deptRepository;
public List<Dept> findAll() {
// JPA 전체조회 함수 실행 : select 문 자동 작성
List<Dept> list = deptRepository.findAll();
return list;
}
}
-DeptController
@Slf4j
@Controller
@RequestMapping("/basic")
public class DeptController {
// 서비스 클래스 가져오기
@Autowired
DeptService deptService;
// 전체 조회
@GetMapping("/dept")
public String getDeptAll(Model model) {
// DB 전체 조회 서비스 함수 실행
List<Dept> list = deptService.findAll();
// 결과를 jsp 전송
model.addAttribute("list",list);
return "basic/dept/dept_all.jsp";
}
}
-detp_all.jsp (body부분)
<body>
<%-- 머리말 --%>
<jsp:include page="../../common/header.jsp" />
<%-- 본문--%>
<div class="container">
<%-- TODO: 검색어 입력 상자 --%>
<%-- TODO: 테이블 --%>
<table class="table">
<thead>
<tr>
<th scope="col">dno</th>
<th scope="col">dname</th>
<th scope="col">loc</th>
<th scope="col">insertTime</th>
<th scope="col">updateTime</th>
</tr>
</thead>
<tbody>
<c:forEach var="data" items="${list}">
<tr>
<td><a href="/basic/dept/edition/${data.dno}">${data.dno}</a></td>
<td>${data.dname}</td>
<td>${data.loc}</td>
<td>${data.insertTime}</td>
<td>${data.updateTime}</td>
</tr>
</c:forEach>
</tbody>
</table>
<%-- TODO: 페이지번호 --%>
<%-- TODO: Add 버튼 --%>
<div class="text-center">
<a href="/basic/dept/addition" class="btn btn-primary">Add</a>
</div>
</div>
<%-- 꼬리말--%>
<jsp:include page="../../common/footer.jsp" />
</body>
