이번 포스팅은 스프링부트에서 database를 사용하기 위한 방법을 작성해보려고 한다.
전제는 스프링부트를 생성할 때 database관련된 의존성을 넣지 않고 생성하고 시작한다.
빌드는 gradle이다.
의존성 추가
스프링 부트에는 Dependency Management라는 의존성 관리 도구가 있다
이 도 구는 애플리케이션에 필요한 라이브러리들을 다운로드할 수 있게 도와주는 도구다.
스프링 부트는 어떤 한 라이브러리를 다운로드할 때 항상 라이브러리가 의존하는 다른 라이브러리들도 같이 다운로드할 수 있도록 의존성관리를 해준다.
그래서 dependencyManagement 영역에 정의된 의존성들 중 하나라도 사용하게 된다면 버전을 명시하지 않아도 spring-boot-dependencies가 관리하는 버전을 사용할 수 있는 원리다.
방법
많이 사용하는 Gradle 기준으로 설명을 하겠다.
build.gradle 에 들어가게 되면 아래와 같이 나올 텐데(사람마다 의존성을 추가한 것이 달라 본인과 다를 수도 있다.)
dependencies 안에 아래의 코드를 넣어준 후 빌드를 다시 해주면 의존성이 추가된다.
implementation 'com.mysql:mysql-connector-j'
여기서 한 가지 주의할 점이 있다.
MySQL을 사용 중이라면 8.0.31 이전 버전과 8.0.31 이후 버전의 작성법이 달라졌다는 것이다.
8.0.31 이전버전
implementation 'mysql:mysql-connector-java'
8.0.31 이후버전
implementation 'com.mysql:mysql-connector-j'
이점을 주의해 주자 만약에 위에 것들이 전부 되지가 않는다면
버전을 명시해서 써주는 방법도 시도해 보자
https://mvnrepository.com/artifact/mysql/mysql-connector-java
이곳에 MySQL 최신버전까지 명시되어 있으니 자기가 원하는 버전을 골라 버전을 적어서 추가해 주면 된다.
예시)
implementation 'mysql:mysql-connector-java:8.0.33'
빌드까지 다시 시작해 줬다면 잘 들어갔는지 확인해 보자
우와 같은 External Libraries 에들어가면 여러 라이브러리들이 보일 것이다.
여기서 자신이 넣은 라이브러리가 잘들어갓는지 확인하면 된다.
mysql이 잘 들어가 있는 걸 확인할 수가 있다.
yml 설정
이제 스프링 서버가 MySQL DB 에 접근할 수 있도록 설정해 주자.
application.yml을 resources안에 만들어주자
만약에 application.propertioes가 있다면 삭제하고 application.yml을 만들어주면 된다.
2개의 차이점은 구조가 다르다는 점이 있다.
1. properties : 각 줄마다 key=value의 형태로 이루어져 있다.
2. yml의 경우엔 들여 쓰기로 구분되는 계층 구조 및 key: value의 형태로 이루어져 있다.
어떤 것을 사용해도 아무 문제가 없고, 기본적인 구조는 비슷하기 때문에 편한 것을 사용하면 되겠다.
datasource : 스프링부트가 어떤 datasource를 가르킬건인가.
url : 데이터베이스 주소
username : 계정이름
password : 계정 비밀번호
driver-class-name : 데이터베이스를 접근할 때 사용할 프로그램
위와 같은 식으로 적어주면 yml 설정이 끝난다.
'개발 > spring_boot' 카테고리의 다른 글
Gradle와 Maven의 차이 (1) | 2024.03.15 |
---|---|
@SpringBootApplication 란? (0) | 2023.07.21 |