-
// WebConfig.java package com.kh.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; // 3000 포트와 연결하는 webConfig 설정 @Configuration public class WebConfig implements WebMvcConfigurer{ @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") // 3000 다음에 오는 api url 모두 허용 .allowedOrigins("http://localhost:3000") // localhost:3000 주소 접속허용 .allowedMethods("GET","POST","PUT","DELETE","OPTIONS") // httpMethod 와 기타 옵션 모두 허용 .allowedHeaders("*"); // 데이터, 이미지, 파일 다중파일등 모두 허용 } }JPA 는 Mybatis 와 다른 점이 크게 mapper , xml 대신 repository 하나가 들어간다.
그리고 DTO 의 모습도 다르다.
// Chicken.java package com.kh.dto; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import lombok.Getter; import lombok.Setter; @Entity // MySQL 에 테이블이 존재하지 않으면 테이블 생성 @Getter @Setter // lombok, jakarta 가 나오지 않음 -> build.gradle 에 spring 이나 lombok 관련된 설정이 있는지 확인 public class Chicken { @Id // primary key @GeneratedValue(strategy = GenerationType.IDENTITY) // Nextval private int id; private String chickenName; private String description; private double price; // 소수점 고려 }@Entity : MySQL 에 테이블이 존재하지 않으면 테이블 생성
@ID : primary key 지정
@GeneratedValue(strategy = GenerationType.IDENTITY) : 자동으로 숫자가 오르는 기능 (Nextval, sequence)
// ChickenRepository.java package com.kh.repository; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import com.kh.dto.Chicken; // repository // mybatis - mapper 이 두가지를 설정 // @Repository, @Mapper 는 interface 로 시작 @Repository public interface ChickenRepository extends JpaRepository<Chicken, Integer> { // 전체보기 전체넣기 전체수정 전체삭제 와 같은 기본 기능은 // JpaRepository 안에 모두 들어있음 }// application.properties spring.application.name=JPA_chicken server.port=9090 spring.datasource.url=jdbc:mysql://localhost:3306/KH_WORKBOOK spring.datasource.username=root spring.datasource.password=kh1234 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # MySQL 에 자동으로 테이블을 생성해주는 설정 spring.jpa.hibernate.ddl-auto=update # SQL 이 자동으로 생성이되고 쿼리가 실행이 잘 되는지 보는 설정 spring.jpa.show-sql=true # JPA 로 만들어진 쿼리가 보임 ### DATA Language # Definition ### DDL = CREATE DROP ALTER RENAME TRUNCATE # Control, Class, Checked ### DCL = GRANT REVOKE # Manipulation ### DML = INSERT UPDATE DELETE SELECT # Query ### DQL = SELECTJPA 실습
Java 백엔드
https://github.com/LeePaDack/Springboot-React/tree/main/JPA_chicken
Springboot-React/JPA_chicken at main · LeePaDack/Springboot-React
Contribute to LeePaDack/Springboot-React development by creating an account on GitHub.
github.com
React 프론트엔드
https://github.com/LeePaDack/Springboot-React/tree/main/chicken-store
Springboot-React/chicken-store at main · LeePaDack/Springboot-React
Contribute to LeePaDack/Springboot-React development by creating an account on GitHub.
github.com
'기타' 카테고리의 다른 글
JAR 과 WAR 의 개념과 차이점 (0) 2024.08.27