DB연결 및 Entity 작성

bigtr3·2024년 9월 2일
post-thumbnail

개발자 유미 - 스프링 시큐리티 JWT

데이터베이스 종류와 ORM

회원 정보를 저장하기 위한 데이터베이스는 MySQL 엔진의 데이터베이스를 사용한다. 그리고 접근은 Spring Data JPA를 사용한다.

  • 이 프로젝트에서 데이터베이스를 만드는 이유
    회원 정보를 검증하기 위해 사용자에게 username과 비밀번호 id를 받아야함. 그리고 그걸 저장해야해서 MySQL 사용

데이터베이스 의존성 주석 해제

2강에서 진행했던 build.gradle의 Spring Data JPA 및 MySQL Driver 의존성 주석을 해제한다.

데이터베이스 만들기

실습하는거니까 돈 나가는 AWS 데이터 베이스 만들기는 생략하고 localhost로 DB를 만들어준다.

인텔리제이 우측에 있는 데이터 버튼 누르고 +버튼 눌러서 만들면 됨.


User랑 Password 설정해주면 된다.
URL에 있는건 복붙해서 밑에 써줄거다.

이렇게 하면 console 창이 하나가 뜰텐데

create database jwtproject;

use jwtproject;

이런 식으로 입력해서 실행하면 테이블이 생성된다.

변수 설정

영상에선 DB 연결 설정과 Hibernate ddl 설정를 application.properteis 진행했는데, 나는 원래 application.yml을 써 그걸로 바꿔줌.

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/jwtproject?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&allowPublicKeyRetrieval=true
    username: 아까 설정한 User
    password: 아까 설정한 Password
    driver-class-name: com.mysql.cj.jdbc.Driver

  jpa:
    hibernate:
      ddl-auto: create
      naming:
        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

원래 밑에처럼 작성했었는데 강의대로 하려고 불필요한거 뺌.

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/study
    username: 님들의 rds 루트 유저 이름
    password: 님들의 rds 비밀번호
    driver-class-name: com.mysql.cj.jdbc.Driver
  sql:
    init:
      mode: never
  jpa:
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQL8Dialect
        show_sql: true
        format_sql: true
        use_sql_comments: true
        hbm2ddl:
          auto: update
        default_batch_fetch_size: 1000

패키지 설정

회원 테이블 Entity 작성 : UserEntity

UserEntity
@Entity
@Setter
@Getter
public class UserEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    private String username;
    private String password;

    private String role;
}

원래 entity 패키지가 아닌 domain 패키지 안에 common, enum, mapping 디렉토리 두고, common에 BaseEntity 둬서 관리하는 방식으로 엔티티 생성했었는데 그게 나은거 같다. 하지만 일단 강의대로 하기.

회원 테이블 Repository 작성 : UserRepository

UserRepository
public interface UserRepository extends JpaRepository<UserEntity, Integer> {

}

ddl-auto=create 설정 후 실행

데이터베이스에서 회원 정보를 저장할 테이블을 생성해야 하지만 ddl-auto 설정을 통해 스프링 부트 Entity 클래스 기반으로 테이블을 생성할 수 있다.

평소엔 none이나 validate로 설정.

저번에 update로 했더니 뭔가 문제가 생겼었던 거 같음.

실행화면

profile
스프링 공부기록🧾

0개의 댓글