개발자는신이야
The first step
개발자는신이야
전체 방문자
오늘
어제
  • 분류 전체보기 (114)
    • 🍃웹개발 Spring (15)
    • ❓내 질문 (4)
    • 🔥웹개발종합반 (11)
    • 💻개인프로젝트 (5)
    • 😕error (2)
    • 💡알고리즘 (3)
    • 📖혼자공부하는자바 (22)
    • 📑WIL (2)
    • 🥸 CS 면접 스터디 (13)
    • 🤓천재교육 풀스택 1기 노트 (21)
    • ⏰정처기 공부 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • repository
  • Controller
  • API
  • jquery
  • database
  • HTML
  • SQL
  • JPA
  • 기초
  • CSS
  • 변수
  • dependencies
  • CRUD
  • IntelliJ
  • boot
  • Lombok
  • db
  • Java
  • style
  • Spring

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
개발자는신이야

The first step

[Spring] JPA 기초(Domain, Repository)
🍃웹개발 Spring

[Spring] JPA 기초(Domain, Repository)

2022. 9. 26. 15:23

JPA는

JAVA로 Database를 사용하도록 도와주는 친구이다.

따라서 DB를 이용하는데 핵심인 "테이블"과 "SQL"의 같은 개념의 자바 용어가 있다.

 

"테이블"은 JAVA에서 Domain

"SQL"은 JAVA에서 Repository

로 쓰인다.

 

Domain과 Repository의 사용법

1. src > main > java > com.filename에 domain이라는 패키지(폴더)를 만든다.

2. ClassName.java, ClassNameRepository.java 클래스를 damain 안에 생성한다.

 

3.ClassName.java는 테이블 역할은 하는 Domain으로 사용될 녀석이다.

@NoArgsConstructor // 기본생성자를 대신 생성해줍니다.(setter)
@Entity // 테이블임을 나타냅니다.
public class Course {

    @Id // ID 값, Primary Key로 사용하겠다는 뜻입니다.
    @GeneratedValue(strategy = GenerationType.AUTO) // 자동 증가 명령입니다.
    private Long id;

    @Column(nullable = false) // 컬럼 값이고 반드시 값이 존재해야 함을 나타냅니다.
    private String title;

    @Column(nullable = false)
    private String tutor;

	//getter
    public String getTitle() {
        return this.title;
    }

    public String getTutor() {
        return this.tutor;
    }

    public Course(String title, String tutor) {
        this.title = title;
        this.tutor = tutor;
    }
}

SQL로 테이블과 데이터를 저장하는것 처럼

Course라는 테이블을 생성, id, title, tutor의 데이터를 입력하는 것을 확인할 수 있다.

 

 

4.

#1 Ropository.java를 생성한다 (src > main > java > com.filename > domain)

#2 domain 폴더 안에 (ClassName)Repository.java 클래스를 생성한다.

#3 생성할때 주의점! 생성 시 Class가 아닌 Interface로 생성한다

#4 ClassNameRepository.java는 SQL역할을 하는 Repository이며 JpaRepository를 사용할 인터페이스명만을 정해주면 된다.

public interface ClassNameRepository extends JpaRepository<ClassName, Long> {
}

해당 코드의

ClassNamePepository가 인터페이스명

ClassName가 Domain명 이다.

 

※인터페이스란 클래스에서 맴버가 빠진, 메소드 모음집이다.

'🍃웹개발 Spring' 카테고리의 다른 글

[Spring] JPA심화 (CRUD)_1  (0) 2022.09.27
[Spring] JPA 상속(extends)  (0) 2022.09.26
[Spring] JPA란.  (1) 2022.09.26
[SQL] SQL(CRUD)  (0) 2022.09.26
[Spring] IntelliJ SpringBoot 프로젝트 생성하기  (0) 2022.09.26
    '🍃웹개발 Spring' 카테고리의 다른 글
    • [Spring] JPA심화 (CRUD)_1
    • [Spring] JPA 상속(extends)
    • [Spring] JPA란.
    • [SQL] SQL(CRUD)
    개발자는신이야
    개발자는신이야
    첫발을 내디딘 초보 개발자입니다.

    티스토리툴바