두근두근 & 차근차근 프로그래밍
2021.12.10 본문
· 12월 9일에 배운 내용이랑 이어져서, 12월 9일에다가 계속 정리
· JPA 활용 + Spring Boot
[ ※ OracleDB 접속 라이브러리 : JPA 라이브러리(단독) ] => OracleDB 관련 쿼리문을 단 한번도 사용하지 않음
· < 게시판 테스트 > 구현
- 페이징(Paging) 적용 : 클릭한 '페이지 번호'의 [ 게시판 ] ( 기본 : 1번 '페이지 번호'의 [ 게시판 ] )
( '페이징' 관련 공통적인 내용을 별도의 클래스로 만들어서 활용 / JPA => RowBounds 불필요 )
- [ 글쓰기 ]
- [ 게시판 ]에서 '특정 제목' 클릭 -> 조회수 1 증가 + [ 상세 페이지 ]로 이동
- [ 수정 ] 및 [ 삭제 ]
· [ @DeleteMapping ] 및 [ @PutMapping ]을 사용하기 위한 절차
· [ @RequestParam(defaultValue = "1") int page ]
· [ @PathVariable ]을 통한 'URI 매핑'
· [ (Interface) Repository ] -> DAO의 역할 수행 ( 'DB 처리' 관련된 모든 것 수행 )
· Repository의 객체
- 별도의 작업이 없을시, 기본적으로 좌변에 '[ @Entity ]를 통해 만든 테이블'을 리턴 받음
- 한 번만 사용하는 방법을 지향 ( = OracleDB 한번만 접속 )
· OracleDB의 CRUD 기능을 수행하기 위해, Java Eclipse 내부적으로 이미 만들어져 있는 메서드
( 'Repository의 객체' 바로 뒤에 [.]을 찍고 입력 )
- save('Entity의 객체') : <insert> ( 그냥 바로 save() 사용 ) / <update> ( [ 방법 2 ] 사용 )
( [ BoardServiceImpl ]과 [ NoticeServiceImpl ]에 정리한 내용을 참고할 것 !!! )
- deleteById(ID) : <delete>
- findById(ID) : Optional<T> 형태로 데이터를 <select>
- findAll() : List<T> 형태로 데이터를 <select>
- findAll(Sort) : List<T> 형태로 데이터를 <select>
- findAll(Pageable) : Page<T> 형태로 데이터를 <select>
· [ JpaRepository<T, ID> ] 內 유용한 기능
- [ .stream ] List 컬렉션에서 'Entity의 객체'를 하나씩 split
- [ .map ( '생성자' 참조 람다식 ) ] 데이터 이동 및 데이터 타입 변경
- [ .collect( Collectors.toList() ) ] split된 'Entity의 객체'를 다시 하나의 List 컬렉션으로 모음
( A를 List<A>로 모음 : A => List<A> )
- [ .getContent() ] Page<T>를 List<T>로 변환 : Page<T> => List<T>
- [ .orElseThrow() ] Optional<T> => <T>
( + 만일 좌변이 존재하나 그 값이 null이면, 명시적으로 Exception을 던짐(발생 시킴) )
- [ .get() ] Optional<T> => <T>
( + 만일 좌변이 존재하나 그 값이 null이면, null을 반환 )
=> [ @Transactional ] : Repository의 영속성 지원
· [ .map ( '생성자' 참조 람다식 ) ] : 데이터 이동 및 데이터 타입 변경
- List<T>는 [ .stream() ] 한 후에, [ .map( '생성자' 참조 람다식 ) ]을 하고,
그 후에 [ .collect( Collectors.toList() ) ]를 해야함
- Page<T>는 하나씩 다 split하지 않고, 바로 데이터 이동 및 데이터 타입 변경하는 것이 가능
: Page<T> => Page<E>
- Optional<T>는 하나씩 다 split하지 않고, 바로 데이터 이동 및 데이터 타입 변경하는 것이 가능
: Optional<T> => Optional<E>
https://best-mint-34c.notion.site/12-09-460fb426d6bc45dd859e56e74ab7ad25
'[국비지원] AWS 클라우드 융합 자바(JAVA) 웹개발자 양성과정' 카테고리의 다른 글
2021.12.14 (0) | 2021.12.15 |
---|---|
2021.12.13 (0) | 2021.12.15 |
2021.12.09 (0) | 2021.12.14 |
2021.12.08 (0) | 2021.12.14 |
2021.12.07 (0) | 2021.12.14 |