Spring(day-6)Entity,Repository 개념

김성국·2023년 5월 8일
0

01.Entity

  • 데이터베이스에 쓰일 필드와 여러 엔티티간 연관관계를 정의한다. 데이터베이스는 엑셀처럼 2차원 테이블이라고 생각하면 되는데, 이 테이블에 서비스에서 필요한 정보를 다 저장하고 활용하게 된다.

  • 필드라는 것은 엔티티의 각 Column을 의미한다. @로 시작되는 구문은 어노테이션 이라고 부르는데, 대부분은 엔티티와 데이터베이스를 매핑하는 JPA에서 사용되는 것이다

● 어노테이션

  • @Entity : 클래스 위에 선언하여 이 클래스가 엔티티임을 알려준다. JPA에서 정의된 필드들을 바탕으로 데이터베이스에 테이블을 만들어준다.

  • @AllArgsConstructor : 선언된 모든 필드를 파라미터로 갖는 생성자를 자동으로 만들어준다.

  • @NoArgsConstructor : 파라미터가 아예없는 기본생성자를 자동으로 만들어준다.

  • @Getter : 각 필드값을 조회할 수 있는 getter를 자동으로 생성해준다. 예를들어 다른 파일에서 Board 객체의 title값을 얻고 싶다면 getTitle() 메서드를 정의해서 해당 객체의 title값을 얻어오게 되는데, 해당 메서드를 굳이 작성하지 않아도 자동으로 생성해주는 것이다.

  • @ToString : 해당 클래스에 선언된 필드들을 모두 출력할 수 있는 toString 메서드를 자동으로 생성할 수 있도록 해준다.

  • @Id, @GeneratedValue : 해당 엔티티의 주요 키(Primary Key, PK)가 될 값을 지정해주는 것이 @Id 이다. @GeneratedValue는 이 PK가 자동으로 1씩 증가하는 형태로 생성될지 등을 결정해주는 어노테이션이다.

02.Repository

  • JPA에서 Repository 인터페이스를 생성 후, JpaRepository<Entity,기본키 타입>을 상속받으면(extends하면) 기본적인 Create,Read,Update,Delete가 자동으로 생성된다.

1.Member테이블 추가,수정,삭제

01.Member 추가

■Member1.java

  • @id와@column를 통해 id를 기본키로 설정한다. @column를 생략하면 변수명이 컬럼명이 된다.

■Member1Controller.java

  • 여기서 sql구문과 mapper없이 save를 통해 바로 테이블에 추가할 수 있다.

02.Member 검색창,삭제,수정

■ Member1Repository

  • 수정할때 save를 사용하는데 이때 기본키인 아이디 정보가 있어야 하고 없으면 insert로 실행된다.

03.Member 목록페이지와 페이지내이션,검색창

■ Member1Repository

  • JPA를 사용하여 회원목록을 내림차순으로 정렬하여 보여준다
  • 모든 컬럼을 조회하기 위해 findAALL을 사용한다. 이 때 함수 이름이 findAllByOrderByNameDesc와 같은 식으로 사용해야한다. 컬럼에는 원하는 컬럼의 이름을 써준다. 만약 By를 사용하지 않으면 에러가 발생한다.

■ Member1Controller.java


1.Board테이블 추가,수정,삭제

01. Board 추가

■ Board1.java

  • 글번호를 기본키로 하고 시퀀스를 사용함.
  • 글내용 타입은 clob로 지정
  • @ToString.Exclude => 스택오버플로우를 막기 위해서 쓴다.

■ Board1Controller.java

  • save를 이용해서 추가한다.

02. Board 목록

■ Board1Repository.java

■ Board1Controller.java

03. Board 게시물 정보

■ Board1Controller.java

04. Board 게시물에 답글달기

■ Reply1

■ Reply1Controller.java

  • 게시글의 번호를 받아와서 그 게시글에 답글을 달기때문에 이렇게 표시한다.(Reply1가 외래키 역할을 한다고 보면 된다.)

0개의 댓글