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

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 둬서 관리하는 방식으로 엔티티 생성했었는데 그게 나은거 같다. 하지만 일단 강의대로 하기.
UserRepository
public interface UserRepository extends JpaRepository<UserEntity, Integer> {
}
데이터베이스에서 회원 정보를 저장할 테이블을 생성해야 하지만 ddl-auto 설정을 통해 스프링 부트 Entity 클래스 기반으로 테이블을 생성할 수 있다.
평소엔 none이나 validate로 설정.
저번에 update로 했더니 뭔가 문제가 생겼었던 거 같음.
