[Spring] MariaDB와 연결

rekv·2025년 2월 4일

Spring

목록 보기
5/15


application.properties파일의 내용을 다 지우고 application.yaml로 변경

//build.gradle
dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'

	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
#application.yaml
spring:
  # 알아서 DB 연결 객체를 생성
  # HikariCP를 이용해서 커넥션 풀에 기본 연결 객체를 여러개 생성
  datasource:
    url: jdbc:mariadb://192.0.1.204:3306/test
    driver-class-name: org.mariadb.jdbc.Driver
    username: khj
    password: qwer1234

build.gradle에 mariadb 추가 및 application.yaml파일에 설정 추가해주기 (DB주소, 포트 번호, DB 이름, DB 사용자 이름, DB 사용자 비밀번호)

스프링에서 테이블 직접 생성

#application.yaml
spring:
  # 알아서 DB 연결 객체를 생성
  # HikariCP를 이용해서 커넥션 풀에 기본 연결 객체를 여러개 생성
  datasource:
    url: jdbc:mariadb://192.0.1.204:3306/test
    driver-class-name: org.mariadb.jdbc.Driver
    username: khj
    password: qwer1234
  jpa:
    database-platform: org.hibernate.dialect.MariaDBDialect
    hibernate:
      # DDL : CREATE, ALTER, DROP
        # ddl-auto : CREATE, UPDATE, CREATE-DROP, VALIDATE, NONDE
        #create : 서버가 실행될 때 생성한 테이블을 삭제
        #create-drop : 서버가 종료될 때 생성한 테이블을 삭제
        #update : 테이블이 없으면 생성, 테이블 변경이 있을 때는 ALTER문 실행
      # DML : SELECT, INSERT, UPDATE, DELETE
      # DCL : GRANT, REVOKE
      ddl-auto: update
    properties:
      hibernate:
        format_sql: true

logging:
  level:
    org.hibernate.SQL: debug
    org.hibernate.orm.jdbc.bind: trace
//test07.java
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

//Entity는 DB의 테이블을 자동으로 생성해주는 클래스
//  클래스의 변수들이 DB 테이블의 속성으로 만들어진다
//  ex) int idx => INT idx
//    String name => VARCHAR(255) name
@Entity
public class Test07 {
  @Id // 기본키
  @GeneratedValue(strategy = GenerationType.IDENTITY) //AUTO_INCREMENT
  private Long id;
  private String name;
}
//Test07Repository
package com.example.day01.test07;

import org.springframework.data.jpa.repository.JpaRepository;

public interface Test07Repository extends JpaRepository<Test07, Long> {
}

@Entity 애노테이션

@Entity가 붙은 클래스는 JPA가 DB 테이블로 매핑
Test07 클래스가 @Entity로 선언되어 있으므로, 해당 클래스로 테이블 생성

프로젝트를 실행하면 다음과 같이 test07 테이블이 자동으로 생성된 것을 확인할 수 있다.

0개의 댓글