CRUD 일단 적고 시작하기
Read는 findAll랑 findById 2가지로 해서
create나 update 메서드에서 매개변수로 여러개를 받는거보다 모델을 통채로 받아서 넣는게 편하다.
모델에 @NoArgsConstructor를 하고 매개변수 없이 만들어서 필요한 거만 setter로 넣고 나머지는 null로 둬도 됨(int가 아니라 Integer니까)
반환값이 없는 C, U, D도 void로 만들지 말고 pstmt.executeUpdate()의 반환값(int)을 리턴하면 정상적으로 작동했는지 확인하기 쉬움
(Data Access Object)는 데이터베이스와의 상호 작용을 담당하는 객체입니다. 데이터를 저장, 조회, 수정, 삭제 등의 작업을 수행합니다.
DAO 클래스는 주로 데이터베이스 연결, SQL 쿼리 실행, 결과 처리 등을 담당합니다.
DB의 데이터에 접근하기 위한 객체를 가리킨다. DB에 접근하기 위한 로직을 분리하기 위해 사용한다. 직접 DB에 접근하여 data를 삽입, 삭제, 조회 등 조작할 수 있는 기능을 수행한다.
DB에 접근하는 미들웨어
레고블럭 모듈을 들고있는게 DAO
(Data Transfer Object)는 데이터의 저장과 전송을 위한 객체입니다.
DTO 클래스는 주로 프로퍼티 (필드), 생성자, 게터/세터 메서드 등을 포함합니다.
전달할 데이터를 만들기
통신으로 여러개를 한번에 못주니까 객체 하나로 합쳐서 한번에 주고받게
모델들의 필드들을 가지거나
모델 객체 자체를 여러개 가지거나 등등(객체 필드중에서 없는건 생성자에 null 넣어도 됨. 있는거만 rs.getString(4)이런식으로 넣고)
정보를 받아서 페이지에 필요한거만 쓰고(패스워드 등은 제외)