본문 바로가기

⭐ SpringBoot/𝄜 게시판 with SpringBoot

27. DB 설치 및 연동

# PostgreSQL을 설치하고, 이를 스프링 부트와 연동한다.

# 여기서는 PostgreSQL을 기반으로 연동을 하지만, 다른 SQL 프로그램들도 비슷한 흐름으로 연동하면 된다.

DB 연동과정

1. DBMS를 설치 (PostgreSQL)

2. 관련 DB 드라이버를 스프링 부트에 추가

3. 연동설정 작성

PostgreSQL 다운로드

https://www.postgresql.org/download/

 

PostgreSQL: Downloads

Downloads PostgreSQL Downloads PostgreSQL is available for download as ready-to-use packages or installers for various platforms, as well as a source code archive if you want to build it yourself. Packages and Installers Select your operating system family

www.postgresql.org

설치중 지역은 korea로 설정, 실행 완료 후 windows에서 pgadmin 검색하여 실행파일 실행

실행 후 Postgre 설치 시 입력했던 비밀번호를 입력하면, DBMS에 접속 된다.

아래와 같은 화면에서 Tables를 보면 아무것도 생성이 되어 있지 않는것 확인, 현재 Table을 생성한 이력이 없기에 테이블에는 빈 값으로 표시 된다.

DB 연동을 위한 Postgre 라이브러리 추가

InteliJ에서 build.gradle 파일에서 아래와 같이 내용을 추가해 준다.

dependencies {
   // PostgreSQL 드라이버 추가!
   runtimeOnly 'org.postgresql:postgresql'

 라이브러리 주소를 확인하는 방법

https://start.spring.io/

위의 사이트로 이동하여 oracle 및 mysql을 추가한다.

EXPLORE를 클릭하여 Gradle로 변환된 코드를 반영하면 된다.

application.properties에 아래의 내용을 입력하여 postgre db와 연동을 한다.

기존에 사용하던 h2 db의 테이블 구조를 그대로 사용 하였다.

# PostgreSQL 연동
spring.datasource.url=jdbc:postgresql://localhost:5432/firstproject_db
spring.datasource.username=postgres
spring.datasource.password=POSTGRES

#classpath:/data.sql 해당 파일로 데이터를 초기화 한다.
spring.datasource.data=classpath:/data.sql
#initialization-mode=always = 서버 실행 시 항상 data.sql을 실행
spring.datasource.initialization-mode=always
#ddl-auto=create-drop = 서버가 켜질때 테이블과 데이터가 생성, 서버가 꺼질때 테이블과 데이터가 삭제 된다.
spring.jpa.hibernate.ddl-auto=create-drop

DB 데이터를 매번 data.sql로 매번 초기화 하지 않고, 데이터를 유지하는 방법

아래와 같이 기존 값을 always → never, create-drop → update로 변경해 주면 된다.

spring.datasource.initialization-mode=never
#ddl-auto=create-drop = 서버가 켜질때 테이블과 데이터가 생성, 서버가 꺼질때 테이블과 데이터가 삭제 된다.
spring.jpa.hibernate.ddl-auto=update

위와 같이 설정 되었다면, 서버를 껐다가 켜도 데이터가 유지되는것을 볼 수 있다.

pgAdmin 프로그램에서 아래와 같이 쿼리를 직접 입력하여 데이터를 확인 할 수 있다.

'⭐ SpringBoot > 𝄜 게시판 with SpringBoot' 카테고리의 다른 글

29. AOP에 대해 알아보  (0) 2022.04.11
28. IOC 와 DI  (0) 2022.04.11
26. 댓글 삭제 with JavaScript  (0) 2022.04.11
25. 댓글 수정 with 자바스크립트  (0) 2022.04.08
24. 댓글 등록 with JavaScript  (0) 2022.04.08