테이블 생성 및 H2 DB 연결
1. H2 설정
위의 URL에 접속하면 다음과 같은 화면이 나타난다.
(이전 과정에서 프로젝트 생성할 때 H2 디펜던시 설정 했기 때문에 프로젝트 실행 시 함께 돌아감)

- 라이브러리
runtimeOnly 'com.h2database:h2'
application.properties
에서 name 과 Password 설정을 한다.
spring.datasource.driver-class-name=org.h2.Driver spring.datasource.url=jdbc:h2:mem:test spring.datasource.username=sa
만약 H2 콘솔 화면의 URL이 위의 설정과 다르다면, 설정을 콘솔 화면에 맞게 수정해야 한다.
데이터 프레임워크의 발전사… JDBC→DataSource→DB Framework
- JDBC (Java Database Connectivity)
- 초기 단계: JDBC는 자바에서 데이터베이스에 직접 연결하고 SQL 쿼리를 실행할 수 있는 API입니다. 개발자는 데이터베이스 연결, SQL 쿼리 작성, 결과 처리 등을 직접 관리해야 했습니다.
- 단점: JDBC는 매우 낮은 수준의 작업을 요구하기 때문에, 코드의 양이 많고 유지보수가 어렵습니다. 데이터베이스 연결, 자원 해제 등의 반복적인 작업을 수작업으로 처리해야 합니다.
- DataSource
- 중간 단계: DataSource는 데이터베이스 연결을 더 효율적으로 관리하기 위한 방법입니다. 연결 풀링(Connection Pooling)을 통해 데이터베이스 연결을 재사용하여 성능을 개선할 수 있습니다.
- 도입 이유: DataSource를 사용하면 데이터베이스 연결의 효율성을 높일 수 있으며, 연결 풀을 사용해 응답 시간을 줄일 수 있습니다. 그러나 여전히 SQL 쿼리와 자원 관리를 직접 해야 하는 부담이 있습니다.
- DB Framework (예: Hibernate, MyBatis)
- 현대적 접근: 데이터베이스와의 상호작용을 더 쉽게 하기 위해 ORM(Object-Relational Mapping) 프레임워크가 등장했습니다. 하이버네이트(Hibernate)와 같은 프레임워크는 객체 지향 프로그래밍 방식으로 데이터베이스 작업을 처리할 수 있게 해줍니다.
- 장점: ORM 프레임워크는 SQL을 자동으로 생성하고, 데이터베이스 매핑을 통해 자바 객체를 데이터베이스 테이블과 연결해줍니다. 이를 통해 반복적인 코드를 줄이고, 개발 생산성을 높일 수 있습니다.
2. 하이버네이트 설정
application.properties
에서 추가
spring.jpa.hibernate.ddl-auto=create
spring.jpa.show-sql=true
3. 테이블 생성



생성된 것을 볼 수 있음, 생성되는 테이블 명을 변경하고 싶으면
@Table(name = "테이블_명")
하면 된다.


프로젝트를 실행하면 하이버네이트가 테이블을 생성해 준다.
이는 Board 클래스에
@Entity
때문- 하이버네이트 주의점

매번 서버가 시작될 때 마다 create 되기 때문에 서비스 환경에선 사용할 수 없다.
그러므로 배포시엔
create -> none
으로 변경시켜야한다.select 요청 하면 DBMS 는
테이블데이터
로 응답을 해준다.MyBatis 나 하이버네이트는 데이터 타입을 자동으로 정렬해준다.(→ object mapping)
(@Entity 라고 되어있는 클래스를 탐색해서 하이버네이터가 new 해서 setter 로 넣어서 리턴해줌)
엔티티에 디폴트 컨스트럭쳐가 필요한 이유는
하이버네이트가 new 해서 setter 하여 조회해온 값을 가져오기 때문이다.
그래서 빌더 만들거면 클래스에 어노테이션 @
NoArgsConstructor
넣어야함엔티티 클래스에 기본 생성자가 필요한 이유는 Hibernate가 리플렉션을 통해 객체를 생성하고 setter를 사용하여 값을 주입하기 때문이다. 기본 생성자가 없으면 Hibernate는 객체를 올바르게 생성할 수 없다.
스프링부트 게시판 시리즈 v1 - 1. https://inblog.ai/hj/1-spring-게시판-무작정-따라하기-26526 - 2. https://inblog.ai/hj/2-spring-게시판-무작정-따라하기-26560 - 3. https://inblog.ai/hj/3-spring-게시판-무작정-따라하기-26757 - 4. https://inblog.ai/hj/4-spring-게시판-무작정-따라하기-26758 - 5. https://inblog.ai/hj/5-spring-게시판-무작정-따라하기-26934 - 6. https://inblog.ai/hj/6-spring-게시판-무작정-따라하기-26937 - 7. https://inblog.ai/hj/7-spring-게시판-무작정-따라하기-26940 - 8. https://inblog.ai/hj/8-spring-게시판-무작정-따라하기-27065 - 9. https://inblog.ai/hj/9-spring-게시판-무작정-따라하기끝-27066
Share article