구성요소시작 페이지 번호끝 페이지 번호이전/다음 이동 링크 여부현재 페이지 번호페이징구현 코드테스트 코드실행쿼리실제화면에 페이징 기능을 반영한다 -> 컨트롤러 작성 , thymeleaf 작성부스트트랩의 테이블 구조를 이용하여 전달받은 dtoList 를 이용해 Guest
DTO의 목적 : 데이터의 전달 => 읽고,쓰는 것이 모두 허용되는 점이 가능하고 일회성으로 사용되는 성격이 강하다 DTO사용의 장점 : 엔티티 객체의 범위를 한정 지을수 있기 때문에 좀 더 안전한 코드를 작성할 수 있으며 화면과 데이터를 분리하려는 취지에 부합한다
1.Entity 테스트 > 더미데이터 생성 테스트 ★ 생성된 데이터의 regdate , moddate 이 자동으로 값이 채워진것을 확인할 수 있다 자동으로 처리되는 날짜/시간 설정 보기 코드 생성결과 2. 1.Quer
Entity클래스 생성후 BaseEntity를 상속한다예제코드프로젝트를 실행하면 아래와같은 SQL로 테이블이 만들어진다(BaseEntity클래스 상속으로 moddate,regdate 컬럼자동생성)테이블 생성확인JPARepository 상속받는 인터페이스로 구성한다예제코
프로젝트의 계층별 구조와 객체들의 구성Querydsl을 이용해 동적으로 검색 조건을 처리하는 방법Entity 객체와 DTO의 구분페이징 처리build.gradle에 의존성을 아래와 같이 추가한다application.properties에 아래와 같이 DB 정보 추가
@Query는 조인이나 복잡한 조건을 처리해야 하는경우 JPA가 제공하는 쿼리메소드를 사용하기 불편할때 사용한다@Query 는 메서드의 이름과 상관없이 메서드에 추가한 어노테이션을 통해 원하는 처리가 가능하다\-> @Query의 value는 JPQL로 작성한다 => 흔
JPA 는 개발자들이 SQL이 아닌 API의 객체와 메서드를 사용하는 형태로 페이징 처리를 할 수 있도록 도와준다페이징 처리와 정렬에 사용하는 메서드 : findAll()findAll()메소드는 ]paRepository 인터페이스의 상위인 PagingAndSortRep
1.JpaRepository 인터페이스 > Spring Data JPA 에는 여러 종류의 인터페이스의 기능을 통해 JPA관련 작업을 별도의 코드 없이 처리할 수 있도록 지원한다 ex) CRUD작업,페이징,정렬 등을 인터페이스의 메서드를 호출하는 형태로 처리한다 (기능
build.gradle 에 의존성을 추가한다dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // JPA implementation 'org.springframewo
작성된 게시물의 번호를 클릭하면 상세내용을 조회할 수 있다 service interface 작성service 구현클래스 작성findById()를 통해 엔티티 객체를 가져왔다면 entityToDto()를 이용해 엔티티 객체를 DTO로 변환해 반환한다GET방식으로 gno값
☆ 공부할 내용@ManyToOne 을 이용한 연관관계 설정하는법연관관계가 없는 상황에서 left(outer)join 처리방법즉시(Eager)로딩과 지연(Lazy)로딩의 차이와 효율적인 처리방법PK(주키,Primary Key)와 FK(외래키,Foreign Key)를 어떻
JPA에서 관계를 고민할 때는 FK쪽을 먼저 해석하면 편리하다 앞에서 만든 Board 와 Member의 관계는 N:1(다대일) 관계가 되므로@ManyToOne 어노테이션을 적용해야 한다 @ManyToOne : DB상에서 외래키의 관계로 연결된 엔티티 클래스에 설정한다B
SpringBoot 2 버전 이후 포함되는 JPA 버전은 Entity 클래스 내에 전혀 연관관계가 없더라고 조인을 이용할 수 있다\-> 조인을 할 때 INNER JOIN 혹은 JOIN 과 같이 일반적인 조인을 이용할 수 있고, LEFT OUTER JOIN 혹은 LEFT
1.DTO 작성 > DTO를 구성하는 기준은 화면에 전달하는 데이터이거나 화면쪽에서 전달되는 데이터를 기준으로 하기때문에 Entity클래스의 구성과 일치하지 않는 경우가 많다. 1-1.BoardDTO 작성 > BoardDTO의 경우 Member에 대한 참조는 구성하지
게시물을 삭제하려면 FK로 게시물을 참조하고 있는 reply 테이블도 삭제해야 한다\-> 먼저, 해당 게시물의 모든 댓글을 삭제하고 해당 게시물을 삭제한다♡ 가장 중요한 것 : 두 작업이 하나의 트랜잭션으로 처리되어야 한다실제 개발에서는 게시물에 댓글이 있는 경우 다른
❤️ github 주소 : https://github.com/qkralswl689/LearnFromCode/tree/main/board2022 1.게시글 리스트 출력 1-1.Controller 작성 1-2.화면(html)작성 > /borad/list 경로로 아래
❤️ github 주소 : https://github.com/qkralswl689/LearnFromCode/tree/main/board2022FK를 이용해 @ManyToOne과 같은 연관관계를 작성했을 때 가장 어려운것 : 검색에 필요한 JPQL을 구성하는 것
❤️ github 주소 : https://github.com/qkralswl689/LearnFromCode/tree/main/board2022Pageable의 Sort 객체는 JPQLQuery의 orderBy()의 파라미터로 전달되어야 하지만 JPQL에서는 S
❤️ github 주소 : https://github.com/qkralswl689/LearnFromCode/tree/main/board2022REST방식(다양한 방식)의 호출을 이용해 댓글을 처리한다모든 댓글은 게시물의 조회 화면에서 처리되도록 하고 Ajax를
❤️ github 주소 : https://github.com/qkralswl689/LearnFromCode/tree/main/board2022회원이 영화에 대한 평점과 감상을 기록하는 시나리오를 기반으로 프로젝트를 구성한다한 편의 영화는 여러 회원으 평가가 행
📚 공부한 책 : 코드로배우는 스프링 부트 웹프로젝트❤️ github 주소 : https://github.com/qkralswl689/LearnFromCode/tree/main/mreview2022M:N 관계를 처리할 때는 반드시 맵핑 테이블의 설계는 마지막
📚 공부한 책 : 코드로배우는 스프링 부트 웹프로젝트 ❤️ github 주소 : https://github.com/qkralswl689/LearnFromCode/tree/main/mreview2022
📚 공부한 책 : 코드로배우는 스프링 부트 웹프로젝트❤️ github 주소 : https://github.com/qkralswl689/LearnFromCode/tree/main/mreview2022스프링부트 파일업로드 설정 방법1) 파일 업로드라이브러리 등록
📚 공부한 책 : 코드로배우는 스프링 부트 웹프로젝트 ❤️ github 주소 : https://github.com/qkralswl689/LearnFromCode/tree/main/mreview2022 1.영화/리뷰 프로젝트 적용하기 > - 영화(Movie)의 등록과
📚 공부한 책 : 코드로배우는 스프링 부트 웹프로젝트❤️ github 주소 : https://github.com/qkralswl689/LearnFromCode/tree/main/mreview2022조회 페이지는 목록 페이지에서 영화의 번호를 클릭하면 "/mo
📚 공부한 책 : 코드로배우는 스프링 부트 웹프로젝트❤️ github 주소 : https://github.com/qkralswl689/LearnFromCode/tree/main/clubSecurityConfig 클래스는 시큐리티 관련 기능을 쉽게 설정하기 위