[Spring/기초] Spring boot Mysql 연결Spring/Spring 기초2024. 1. 20. 01:06
Table of Contents
728x90
반응형
MySQL을 Spring에 연결해보자
Spring boot는 JPA(Java Persistence API)를 사용해서 데이터 베이스를 관리하게 된다. ORM(Object-Relational Mapping) 기술을 표준으로 사용한다. JPA의 인터페이스 모음을 구현한 실제 클래스가 필요하다. MYSQL로 데이터베이스를 관리하자
JPA는 자바 객체와 데이터 베이스 간의 매핑을 간편하게 처리할 수 있는 API를 제공한다.
1. 의존성 추가
build.gradle에 의존성을 추가한다. MySQL 드라이버를 사용하기 위해서다.
// build.gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'mysql:mysql-connector-java:8.0.23'
}
- implementation 'org.springframework.boot:spring-boot-starter-data-jpa' :
Spring Boot에서 JPA를 사용하기 위한 패키지 제공이다. - implementation 'mysql:mysql-connector-java:8.0.23' :
JDBC 드라이버를 추가한다.
자바 애플리케이션과 데이터베이스간의 통신을 지원하는 라이브러리이다.
2. 데이터베이스 설정 변경
src/resources/application.properties에 설정을 변경한다.
# DATABASE
spring.datasource.url=jdbc:mysql://localhost:3306/내가 만든 데이터베이스 이름
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.username=${MYSQL_USERNAME}
spring.datasource.password=${MYSQL_PASSWORD}
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.jpa.hibernate.ddl-auto=update
- spring.datasource.url :
데이터 베이스 연결 URL을 지정한다.
localhost는 서버의 호스트 주소를 나타내며 3306은 기본 MySQL 서버 기본 포트 번호이다.(내가 따로 설정해서 바꿀수도 있다.) 자신이 사용하는 것에 맞게 변경해주면 된다. - spring.datasource.driverClassName :
JDBC 드라이버의 클래스 이름을 지정한다.
MySQL의 공식 JDBC 드라이버를 사용했다. - spring.datasource.username, password :
자신의 mysql username이랑 password를 적으면 된다. - spring.jpa.properties.hibernate.dialect :
특정 데이터베이스에 해당하는 SQL문을 생성하는데 사용되는 규칙 세트이다.
현제 MySQL을 사용하고 있으니 MySQL에 맞는 SQL문을 생성하도록 지시하는 역할을 한다. - spring.jpa.hibernate.ddl-auto :
테이블을 생성하는 규칙을 설정한다.
- update : 개발 환경에서 주로 사용하며 엔티티의 변경된 부분만 데이터베이스에 적용한다.
- none : 엔티티가 변경되더라도 데이터베이스르 변경하지 않는다. 운영환경에 사용된다.
- validate : 언테티와 테이블 간에 차이점이 있는지 검사만 한다. 운영환경에 사용된다.
- create : 스프링 부트 서버를 시작할 때 테이블을 모두 삭제한 후 다시 생성한다.
- create-drop : create와 동일하지만 스프링 부트 서버를 종료할 때에도 테이블을 모두 삭제한다.
728x90
반응형
'Spring > Spring 기초' 카테고리의 다른 글
[Spring/기초] spring MVC (0) | 2024.01.21 |
---|---|
[Spring/기초] Entity 만들기 (0) | 2024.01.20 |
[Spring/기초] Spring boot 기본 폴더 구조 설명 (0) | 2024.01.19 |
[Spring/기초] Controller Vs RestController (0) | 2024.01.19 |
[Spring/기초] Controller (0) | 2024.01.18 |
@코딩하는 자연대생 :: 자연대생도 코딩을 하고 싶어
Coding, Software, Computer Science 내가 공부한 것들 잘 이해했는지, 설명할 수 있는지 적는 공간