«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

두근두근 & 차근차근 프로그래밍

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