DTO 를 엔티티 로 변환
엔티티 : DB가 자바를 이해할수있게 만드는것 , 테이블 생성
레파지토리:DB를 저장및 관리 공간
ArticleController 에 코드 추가
public String createArticle(ArticleForm form){
System.out.println(form.toString());
//1.DTO를 엔티티로 변환
Article article = form.toEntity();
//2.리파지터리로 엔티티를 DB에 저장
return "";
}
entity 패키지 -> Article 클래스 생성
Article 클래스 코드 수정
package com.example.firstproject.entity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
@Entity //엔티티 선언
public class Article {
@Id //엔티티의 대표값 지정
@GeneratedValue //자동 생성 기능 추가(숫자가 자동으로 매겨짐)
private Long id;
@Column //title 필드 선언 , DB 테이블의 title 열과 연결됨
private String title;
@Column //content 필드 선언, DB 테이블의 content 열과 연결
private String content;
}
ArticleController 에 엔티티 import
import com.example.firstproject.entity.Article;
이제 toEntity() 메서드를 만들러 ArticleForm 으로 이동하여 코드 수정
entity 에 만들었던 Article 에 맞춰 추가
public Article toEntity(){
return new Article(null,title,content);
}
리파지터리로 엔티티를 DB에 저장하기
ArticleController 코드 추가
package com.example.firstproject.controller;
import com.example.firstproject.dto.ArticleForm;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import com.example.firstproject.entity.Article;
@Controller
public class ArticleController {
private ArticleRepository; //articleRository 객체 선언
@GetMapping("/articles/new")
public String newArticleForm(){
return "articles/new";
}
@PostMapping("/articles/create")
public String createArticle(ArticleForm form){
System.out.println(form.toString());
//1.DTO를 엔티티로 변환
Article article = form.toEntity();
//2.리파지터리로 엔티티를 DB에 저장
Article saved = articleRepository.save(article);
//article 엔티티를 저장해 saved 객체에 반환
return "";
}
}
리파지터리 만들기
com.example.firstproject 아래 repository 패키지 추가 -> ArticleRepository 인터페이스 생성
public interface ArticleRepository extends CrudRepository<Article,Long>
CrudRepository 를 상속받는 코드로 변경 (CrudRepository는 JPA에서 제공하는 인터페이스)
코드를 입력하면 자동으로 패키지가 import 된다
ArticleController 에 import 및 빨간밑줄 해결되었나 확인
위의 ArticleRepository 앞에 @Autowired 를 작성하여 스프링부트가 미리 생성해놓은 리파지터리 객체 주입(의존성 주입)
데이터 저장 확인하기
ArticleController 에서 article.toString() 메서드 호출 , saved.toString()메서드 호출
서버를 재시작후
제목에 가가가가 , 내용에 1111 적어보았다
정상적으로 Article 에 저장되고 id 도 부여되었다
'Java' 카테고리의 다른 글
SpringBoot 에서 lombok 사용하기 (0) | 2023.04.25 |
---|---|
SpringBoot 공부 - DB 조회하기 (0) | 2023.04.25 |
SpringBoot 공부 - DTO (0) | 2023.04.25 |
SpringBoot 공부 - CRUD (form 설정) (0) | 2023.04.24 |
SpringBoot 공부 - 뷰 템플릿 (부트스트랩 적용) (0) | 2023.04.24 |