오늘 해볼 파트는 ORM 사용하기
ORM 사용을 할 예정이니 이제 빠지면 섭섭한 부분 바로
dependencies 파트
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
implementation ('mysql:mysql-connector-java')
implementation('com.h2database:h2')
그러나 오늘 파트는 DB이므로 properties도 해줘야된다. application.properties에 넣어준다
# MySQL 설정
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# DB Source URL
spring.datasource.url=jdbc:mysql://아이피:포트번호/db이름 ?serverTimezone=UTC&characterEncoding=UTF-8
# DB username
spring.datasource.username=root
# DB password
spring.datasource.password= moon0909
# true JPA쿼리 확인기능
spring.jpa.show-sql=true
# JPA의 구현체인 Hibernate가 동작하면서 발생한 SQL의 가독성을 높여준다.
spring.jpa.properties.hibernate.format_sql=true
#하이버네이트 설정시 드라이버
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.datasource.driverClassName=com.mysql.jdbc.Driver
Entity 만들기
댓글 , 회원정보 , 게시글 이세개를 만든다.
게시글
package com.tc.springboot.entity;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Getter
@Entity(name="tc_user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int tc_num;
private String tc_id;
private String tc_password;
private String tc_email;
@Builder
public User(String tc_id, String tc_password, String tc_email) {
this.tc_id = tc_id;
this.tc_password = tc_password;
this.tc_email = tc_email;
}
}
다음 형태를 가지고 똑같이 나머지 2개도 제작
제작하였다면 해당 Entity를 사용할 Repository 만들기
package com.tc.springboot.repository;
import com.tc.springboot.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Integer> {
}
RestController 하나 만들어서 테스트해보기
@RestController // JSON 형태 결과값을 반환해줌 (@ResponseBody가 필요없음)
@RequiredArgsConstructor // final 객체를 Constructor Injection 해줌. (Autowired 역할)
@RequestMapping("/v1") // version1의 API
public class MemberController {
private final UserRepository userRepository;
@PostMapping("member")
public User signUp() {
final User member = User.builder() .tc_id("hi") .tc_password("test user") .tc_email("GG@GG.com").build(); return userRepository.save(member); }
}
cmd 창에 curl 을 이용해 호출하여 확인
필자는 한글 코딩 처리 때문에 저렇게나옴
사용 구현을 다하였으니 이제 남은건
REST Controller 만들고 거기에 이어붙이는 작업과
jwt 토큰을 사용하여 인증하는방법을 쓸것이다.
그건 다음에..