CRUD란
Create : 생성
Read : 조회
Update: 변경
Delete : 삭제
DB의 데이터를 생성, 조회, 변경, 삭제를 하는 정보관리의 기본 기능을 줄여서 CRUD라고 한다.
CREATE & READ
Repository의 save(저장하기) -> Repository 사용하는 방법
Repository를 불러왔다면 Repository.java에서 정한 인터페이스명으로 Repository를 사용할 수 있다.
(이 글에서 Repository의 인터페이스명은 Course/ Main클래스 명은 Course로 한다.)
V
public interface CourseRepository extends JpaRepository<Course, Long> {
}
.
.
.
create & read 해보기
[Course.java]
package com.week02sec.week02sec.domain;
import lombok.Getter;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Getter
@NoArgsConstructor // 기본생성자를 대신 생성해줍니다.
@Entity // 테이블임을 나타냅니다.
public class Course extends Timestamped {
@Id // ID 값, Primary Key로 사용하겠다는 뜻입니다.
@GeneratedValue(strategy = GenerationType.AUTO) // 자동 증가 명령입니다.
private Long id;
@Column(nullable = false) // 컬럼 값이고 반드시 값이 존재해야 함을 나타냅니다.
private String title;
@Column(nullable = false)
private String tutor;
public Course(String title, String tutor) {
this.title = title;
this.tutor = tutor;
}
}
[CrearteNRead.java]
// 데이터 저장하기
CourseRepository.save(new Course("프론트엔드의 꽃, 리액트", "임민영"));
// 데이터 전부 조회하기
List<Course> courseList = CourseRepository.findAll();
for (int i=0; i<courseList.size(); i++) {
Course course = courseList.get(i);
System.out.println(course.getId());
System.out.println(course.getTitle());
System.out.println(course.getTutor());
}
// 데이터 하나 조회하기
Course course = CourseRepository.findById(1L).orElseThrow(
() -> new IllegalArgumentException("해당 아이디가 존재하지 않습니다.")
);
출처: [스파르타코딩클럽] 웹개발의 봄, Spring 강의자료
@ReadNCreate.java 코드 분석
// 데이터 저장하기
CourseRepository.save(new Course("프론트엔드의 꽃, 리액트", "임민영")); |
CourseRepository.save:
CourseRepository는 앞서 repository의 기능을 사용하기로 정한 인터페이스명이다.
즉 CourseRepository.save = repository.save 데이터를 저장한다는 뜻이다.
new Course("프론트엔드의 꽃, 리액트", "임민영"): |
new Course: 미리 테이블로 만들어놓은 CourseClass에 아래 내용을 저장하겠다는 뜻.
(title: 프론트엔드의 꽃, 리엑트)
(tutor: 임민영)
// 데이터 전부 조회하기
List<Course> courseList = CourseRepository.findAll(); |
for (int i=0; i< courseList.size(); i++){ Course course = courseList.get(i); System.out.println(course.getId()); System.out.println(course.getTitle()); System.out.println(course.getTutor()); } |
List<Course> courseList = CourseRepository.findAll();
List<Course> courseList: Course 클래스의 모든 데이터를 리스트로 받아와서 courseList에 담아라.
CourseRepository.findAll(): 이후 모든 데이터를 찾아라.
Course course = courseList.get(i);
Course course = courseList.get(i): 순차대로 courseList에서 받아온 데이터를 course에 넣어라
// 데이터 하나만 조회하기
Course course = CourseRepository.findById(1L).orElseThrow(
() -> new IllegalArgumentException("해당 아이디가 존재하지 않습니다.")
);
Course course: Course 클래스의 정보들을 course에 담는다.
CourseRepository.findByID(1L): 그중 1L인 아이디인 값을 찾아라(1L은 Course(Class)에서 id가 Long으로 선언되었다).
orElseThrow(): 만약 없다면
-> : 화살표 함수 (가르키는 것을 실행해라)
new IllegalArgumentException("해당 아이디가 존재하지 않습니다."): 에러메세지: 해당 아이디가 존재하지 않습니다. 를 출력
'🍃웹개발 Spring' 카테고리의 다른 글
[String] Lombok이란 (0) | 2022.09.27 |
---|---|
[Spring] JPA심화 (CRUD)_2, SpringBoot 서비스 구조 (1) | 2022.09.27 |
[Spring] JPA 상속(extends) (0) | 2022.09.26 |
[Spring] JPA 기초(Domain, Repository) (1) | 2022.09.26 |
[Spring] JPA란. (1) | 2022.09.26 |