4.h2테이블세팅

강재영's avatar
Aug 14, 2024
4.h2테이블세팅
 

1. 하이버네이트 세팅

spring.jpa.show-sql=true 이거는 console창에서 db가 어떻게 되었는지 확인할 수 있게 해준다.
spring.jpa.hibernate.ddl-auto=create 이거는 업데이는 none등이 있다.
# 1. UTF-8 세팅 server.servlet.encoding.charset=UTF-8 server.servlet.encoding.force=true #2. H2 데이터베이스 세팅 spring.datasource.driver-class-name=org.h2.Driver spring.datasource.url=jdbc:h2:~/test spring.datasource.username=sa #3. 하이버네이트 세팅 spring.jpa.hibernate.ddl-auto=create spring.jpa.show-sql=true
 

2. Board 엔티티 생성 주석참조

spring.jpa.hibernate.ddl-auto=create를 해서 스프링 실행시 테이블이 생성된다.
package shop.mtcoding.blog.board; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; import java.sql.Timestamp; @Getter @Setter @Table(name = "board_tb") //이 설정을 안하면 클래스이름이 테이블이름으로 저장되는데 db에서 저장되면 안되는 이름으로 저장될 수 있다 //보통은 테이블명 뒤에 _tb를 붙인다. @Entity // DB에서 조회하면 자동 매핑이됨 public class Board { @GeneratedValue(strategy = GenerationType.IDENTITY) //Auto_increment설정, 시퀀스 설정 @Id //PK private Integer id; private String title; private String content; private Timestamp createTime; }
 

3. 생성되는 화면

notion image
중점적으로 봐야하는거
1. 처음에 @Table(name = "board_tb") 이설정을 안해서 생성된 Board 테이블이 클래스 이름과 같이생성된거
2.@Table(name = "board_tb") 이설정을 하여 바뀐 테이블이름
3.Timestamp createTime 나는 이렇게 createTime을 카밀케이스로 만들었는데 h2 디비테이블에 칼럼 명은 모두대문자에 카밀케이스 앞에 언더바가 생긴걸 확인할 수 있다.
Share article

강재영 블로그