DB에 데이터를 기록하려면, 서버에서 데이터베이스에 데이터를 저장해달라고
말해야하는데, 데이터베이스는 자바를 알지 못한다.
이를 위한 도구가 바로 JPA 이다.
즉 JPA는 자바언어를 디비가 이해할 수 있게하고,
데이터관리에 편리한 여러 기능을 제공한다.
entity -> 자바 객체를 디비가 이해할 수 있게 규격이고,
엔티티는 리파지토리라는 일꾼을 통해 DB에 전달되고 처리된다( DB table에 처리).
이 과정은 우선,
1. dto를 entity로 변환한다.
기본 프로젝트 안에 entity패키지를 만들고, 그안에 Article이라는 클래스를 만들어준다.
@Entity //DB 가 해당 객체를 인식 가능!
엔티티라는 어노테이션을 붙혀줘야 데이터베이스가 해당 객체를 인식가능하다.
@Column
private String title;
@Column
private String content;
또 이 @Column이라는 어노테이션이 있어야 이 값들이 속성값임을 알 수 있다.
또 기본 키값을 보통 id로 잡아주게 되고
@Id // 대표값 지정
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
private String title;
@Column
private String content;
최종적으로 아티클 클래스는 이런식으로 형태가 잡히게 된다.
생성자 또한 추가 해줘야하지만, 이후 롬복을 통해 간단히 해줄 수 있기에 생략한다.
dto 인 아티클 폼안에 toEntity 메서드를 만들어주고, 이는 아티클 타입을 반환한다.
2. repository에게 entity를 db안에 저장하게 한다.
private ArticleRepository articleRepository;
기본 프로젝트 패키지에 리파지토리 패키지를 만들어 준뒤,
그 안에 ArticleRepository라는 인터페이스를 만들어준다.
이 리파지토리를 직접 구현할 수도 있지만, jpa에서 제공하는 리파지토리를 상속받아오는 것이 편하다.
Crud리파지토리를 상속받아 사용하자.
public interface ArticleRepository extends CrudRepository<Article, Long> {
@Override
ArrayList<Article> findAll();
}
관리대상 엔티티 => Article, 그 타입을 두번째 인자로 => Long
Article saved = articleRepository.save(article);
그럼 이제 문제 없이 이 리파지토리를 사용할 수 있고, 이를 saved 에 담을 수 있다.
'Back-end > Spring boot' 카테고리의 다른 글
Spring Boot 가이드 (서버 정상 가동 여부 체크 포인트) (0) | 2025.05.09 |
---|---|
Form data 주고받기, JPA로 데이터 생성하기 ( 게시판 만들기 시작 ) (0) | 2022.06.23 |
MVC 역할과 실행흐름, 뷰 템플릿과 레이아웃 (0) | 2022.06.23 |
Web service의 동작원리와 View template (0) | 2022.06.23 |
Spring boot, 개발환경 세팅 (0) | 2022.06.22 |