한 포스트에 다 작성하려고 했는데 왜인지 모르겠지만 글이 안써져서ㅠ 두개로 나눴다
글자수가 많았나?ㅠㅠ
[application.yaml jpa부분 설명]
jpa:
open-in-view: true
hibernate:
ddl-auto: create
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
use-new-id-generator-mappings: false
show-sql: true
properties:
hibernate.format_sql: true
ddl-auto: create
create대신 들어갈 수 있는 옵션으로는 update, none이 있다. create로 할 경우 프로젝트를 실행 할 때 마다 테이블을 새로 만든다는 의미이다. table을 생성할 때 drop table if exists ~ 를 실행하고 테이블을 생성한다. 이 경우 프로젝트를 실행할 때 마다 이전에 만들어둔 데이터가 다 날아가기 때문에 나중에는 이 부분을 update로 바꿔서 사용할 것이다. update로 해두면 수정사항만 DB에 반영한다. none으로 해둘 경우 DB에 아무런 반영을 하지 않는다.
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
다른 옵션으로는 org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy이 들어갈 수 있다.
코드에 적혀있는 대로 하면 entity를 만들 때 변수명 그대로 데이터베이스 필드를 만든다. 다른 옵션을 적을 경우 변수명이 myEmail과 같이 코드에 적어두면 데이터베이스에 저장할 때는 my_email로 변수명을 변경해서 저장한다.
use-new-id-generator-mappings: false
jpa가 사용하는 기본 넘버링 전략을 사용하지 않는다는 뜻이다. true로 설정하면 jpa가 사용하는 기본 넘버링 전략을 사용하게 된다.
show-sql: true
위 문장을 적음으로써 console창에서 sql문이 실행되는 것을 볼 수 있다.
properties:
hivernate.format_sql: true
이를 해두지 않으면 콘솔창에 sql문이 한줄로 보인다. 위의 코드를 작성해놔야 sql문이 정렬된다.
[데이터베이스 한글 인코딩]
데이터베이스에서 한글 인코딩을 위해 character set을 utf8로 변경해야한다.
이를 위해서는 workbench에서 root로 접속해서
drop database blog;
create database blog character set utf8 default collate utf8_general_ci;
를 실행 해준다.
이후 모든 창을 닫고 다시 프로젝트를 저장해서 데이터베이스를 열어보면 table정보에서 column부분의 character set 이 utf8로 변경된 것을 확인할 수 있다.
+worbench에서 테이블 생성 모습 확인하려면
Schemas - blog - Tables에 테이블이 생성된 모습 볼 수 있고 해당 테이블 이름 옆에 i모양 선택하면 테이블 정보를 볼 수 있다.
쿼리문으로 확인하려면
use blog;
select * from user;
하면 테이블이 생성된 모습을 확인할 수 있다.(user 테이블 예시)
'SpringBoot > Blog프로젝트 with JPA &데어프로그래밍님' 카테고리의 다른 글
21.1.3 TIL - 데이터 select와 JPA paging (0) | 2021.01.04 |
---|---|
21.1.2 TIL - 연관관계의 주인, 데이터insert연습, JSON데이터 (0) | 2021.01.02 |
21.1.1 TIL - JPA를 이용해서 데이터베이스 테이블 생성하기 (0) | 2021.01.01 |
12.28 TIL - application.yaml설정 (0) | 2020.12.29 |
12.27 TIL - lombok (0) | 2020.12.28 |