오래 못 할 짓 하지 않기

[ 혼자하는 웹 프로젝트 ] 2. 각 패키지들 이해하기 본문

혼자하기/웹 프로젝트 1) 뉴스

[ 혼자하는 웹 프로젝트 ] 2. 각 패키지들 이해하기

쫑알bot 2023. 8. 21. 23:17
728x90
Entity : DB와 연결하는 클래스

데이터베이스의 테이블에 존재하는 컬럼들을 필드로 가지는 객체

즉, DB에 있는 데이터들을 가져올 수 있음.

 

Entity 파일은 DB에 있는 항목들을 가공할 수 있는 변수로 만들어  역할을 한다.

 

 

 

@GeneratedValue(strategy = GenerationType.IDENTITY)

해당 어노테이션은 아래 DB 와 연결해준다. 

server.port=8091

spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=*******
spring.datasource.url=jdbc:mariadb://localhost:3306/news
spring.jpa.hibernate.ddl-auto: create

 

 


Repository : JpaRepository 기능을 받아서 다른 패키지에 있는 class에 전달하기 위한 '주유소' 느낌

 


Service : 해당 페이지에 있는 데이터들을 어떻게 처리할지 다루는 곳

+ 주로 Repository에서 기능을 골라서 Service에서 어떻게 처리할지 process를 만든 후, Controller에서 사용한다.

 

 

@Service
public class NewsService {
@Autowired
    private NewsRepository newsRepository;

    public void addToDB(News news){
        newsRepository.save(news);
    }

}

 

위와 같이 JPArepository를 가지고 있는 NewRpository 객체를 생성하여 그 기능들을 사용한다. 

DB에 저장하는 기능인 save기능을 사용하여 addToDB class를 완성시킨다 

 

그런 뒤에는 Controller에서 목적에 맞게 사용 가능

 

@PostMapping("news/result")
    public String resultOfNews(News news){

    newsService.addToDB(news);
    return "resultOfNews";
    }

  짜잔 news객체로 넘어온 정보들을 DB에 넣는다. 


Controller : 1. 각 class(url) 별로 return 할 데이터와

             2. service에서 만든 class의 객체를 생성하여 데이터를 처리한다.
             
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ            
             
package com.study.news.controller;

import com.study.news.entity.News;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

@Controller
public class NewsController {
@GetMapping("news/choose")
    public String chooseNewsInfo(){

    return "chooseNews";

    }
@PostMapping("news/result")
    public String resultOfNews(News news){

    System.out.println(news.getPublisher());
    return "resultOfNews";
    }

}

 

 

 

 

 

 

오늘 결과: 

더보기

 

 

 


 

 

 

 

다음 차시 목표

: 1. 데이터 긁어와서 DB에 넣기

  2. 가공없이 출력만 해보기

 

(그 다음엔 가공하려고 데이터 왔다갔다 하기임)