Tekies Community 백엔드 만들기 -3

노문택·2022년 1월 22일
0

오늘 해볼 파트는 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 토큰을 사용하여 인증하는방법을 쓸것이다.
그건 다음에..

profile
노력하는 뚠뚠이

0개의 댓글