지금까지 H2 DB를 사용했다
메모리에서 작동하기 때문에 서버를 재시작 할 때마다 data.sql로 더미 데이터를 넣어줬다.
이제 외부 DB랑 연동해서 써보자..
PostgreSQL을 사용할 건데, 다른 DB 사용하는 방법도 비슷하다
다운링크
14.5버전으로 받았음
설치파일 실행해서 진행하다가 Stack Builder는 빼고설치
슈퍼유저 postgres의 비밀번호 : postgres
Locale은 Korea로 해준다.
Forza Napoli Sempre
다 설치하고 나면 윈도우 검색창에 pgadmin을 검색해서 사용하자
postgre db를 쉽게 사용하게 해주는 도구다.
처음 실행하면 pgadmin 비번을 설정해야함.
postgres로 해주자.
맨 처음에는 postgres라는 DB가 있다.
내가 쓸 DB를 새로 만들어주자
DB를 클릭해서 스키마의 테이블을 보면 아무것도 없다.
스프링부트랑 연동해서 만들어주자.
//PostgreSQL 드라이버 추가!
runtimeOnly 'org.postgresql:postgresql'
build.gradle에 추가해주자.
그리고 코끼리를 눌러주자.
추가됨 확인할 수 있음
다른 데이터베이스 사용할거면 해당 데이터베이스의 라이브러리를 추가하면 된다.
맨 처음에 스프링부트 프로젝트 만든 사이트 , 스프링 이니셜라이저에서
이렇게 넣을 수 있는데, 이게 build.gradle 코드가 뭔지 알려면
하단 explore 누르면 build.gradle 코드 나오니까 확인해서 사용하면 된다.
드라이버를 스프링부트에 연동하기 위한 추가 설정이 필요하다.
application.properties에 추가해주자.
# 09강: h2 DB, 웹 콘솔 설정
spring.h2.console.enabled=true
# 15강: data.sql 적용을 위한 설정(스프링부트 2.5 이상)
spring.jpa.defer-datasource-initialization=true
# 17강: JPA 로깅 설정
## 디버그 레벨로 쿼리 출력
logging.level.org.hibernate.SQL=DEBUG
## 이쁘게 보여주기
spring.jpa.properties.hibernate.format_sql=true
## 파라미터 보여주기
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
## 고정 url 설정
#spring.datasource.url=jdbc:h2:mem:testdb
# 28강: PostgreSQL 연동
spring.datasource.url=jdbc:postgresql://localhost:5432/firstproject_db
spring.datasource.username=postgres
spring.datasource.password=postgres
spring.datasource.data=classpath:/data.sql
spring.datasource.initialization-mode=always
spring.jpa.hibernate.ddl-auto=create-drop
전에 고정 url 설정한 부분이랑 spring.datasource가 중복이니까 전 설정을 주석처리 해주자.
이렇게 하고 서버를 돌려서 접속하면 데이터가 제대로 표시된 것을 확인할 수 있다.
삭제를 눌러서 데이터를 삭제하고 서버를 다시 돌리면 데이터가 돌아온다. 왜냐하면 서버 돌릴 때마다 초기화하기로 했으니까
그런데 나는 서버 끄고 키고에 상관없이 데이터 상태를 유지하고 싶다.
그래서 이렇게 바꿔준다.
# 28강: PostgreSQL 연동
spring.datasource.url=jdbc:postgresql://localhost:5432/firstproject_db
spring.datasource.username=postgres
spring.datasource.password=postgres
spring.datasource.data=classpath:/data.sql
spring.datasource.initialization-mode=never
spring.jpa.hibernate.ddl-auto=update
이렇게 설정해주면 게시글 삭제하고 추가하고 나서 서버를 재시작해도 변경사항이 유지된다.
이제 pgadmin 들어가서 확인해보면 테이블이 추가된것을 볼 수 있다.
위에 query tool 누르면 이렇게 쿼리문을 칠 수 있는 창이 나옴
작성하고 실행해주면 결과나옴