[스프링 배치] Spring Batch + mysql 설정하기

반응형
728x90
반응형

SpringBatch DB

개인 공부 프로젝트용으로 springBoot의 내장되어있는 h2 DB를 사용하면 편하겠지만, 스프링 배치 프로젝트 특성상 데이터가 영구적으로 쌓일 수 있는 Oracle, Mysql 등을 사용해야한다. 

 

아래 포스팅을 참고하여 Docker 의 Mysql 을 설치하자.

https://devfunny.tistory.com/421

 

docker로 mysql 설치 (with docker-compose)

Mysql 이미지 설치 docker pull mysql docker-compose 파일 생성 version: "3" services: db: # 서비스 명 image: mysql:latest # 사용할 이미지 container_name: test-mysql # 컨테이너명 설정 ports: - "3306:33..

devfunny.tistory.com

 

 

스프링배치 schema-mysql.sql

application-mysql.yml 파일을 생성하자.

 

  • application-mysql.yml
spring: # zone mysql 설정 (Active profiles)
  batch:
    jdbc:
      initialize-schema: never
  datasource:
    hikari:
      jdbc-url: jdbc:mysql://127.0.0.1:3306/springbatch?characeterEncoding=UTF-8&serverTimezone=UTC
      driver-class-name: com.mysql.cj.jdbc.Driver
      username: springbatch
      password: springbatch

 

해당 부분은 never 로 설정한 이유가 있다. 스프링 배치의 경우 메타데이터 테이블이 자동적으로 생성되는데, never 로 설정하여 생성을 막는다. 우리는 우리의 별도 로컬 mysql 을 사용할 예정이므로 해당 mysql 에 직접 테이블을 생성할 예정이다.

 

spring: # zone mysql 설정 (Active profiles)
  batch:
    jdbc:
      initialize-schema: never

 

~project경로/spring-batch-core/4.3.3/spring-batch-core-4.3.3.jar!/org/springframework/batch/core/schema-mysql.sql

 

해당 파일의 CREATE TABLE 쿼리가 존재한다. 이 쿼리를 그대로 복사하여 mysql 에 실행하자.

 

 

 

 

실행

Active profiles 에 mysql 을 적고 어플리케이션을 실행하자.

 

 

 

반응형

Designed by JB FACTORY