이전 개발 보러 가기
https://taetae99.tistory.com/44
[Board] 벡엔드 토이 프로젝트 - 비동기 없이 댓글 수정 및 댓글 생성, 삭제 구현 (10)
이전 개발 보러 가기https://taetae99.tistory.com/40 [Board] 벡엔드 토이 프로젝트 - 게시판 페이징 구현 (9)이전 개발 보러 가기https://taetae99.tistory.com/39 [Board] 벡앤드 토이 프로젝트 - 게시글 수정, 삭제
taetae99.tistory.com
목차
기능 개발이 어느 정도 완료되어 개발용으로 사용하던 H2 데이터베이스를 요구사항에 맞게
MySQL로 변경한다.
build.gradle 설정
build.gradle 설정 시 주의할 점이 있다. 8.0.31 버전을 기준으로 그룹 ID와 아티팩트 ID가 변경되었다.

자세한 내용은 아래의 링크에서 확인하길 바란다.
https://blogs.oracle.com/mysql/post/mysql-connectorj-has-new-maven-coordinates
MySQL 8.0.31 버전 이전
dependencies {
runtimeOnly 'mysql:mysql-connector-java'
}
MySQL 8.0.31 버전 이후에는 다음과 같이 추가한다.
dependencies {
runtimeOnly 'com.mysql:mysql-connector-j'
}
버전에 맞게 의존성을 추가하지 않으면 다음과 같은 오류를 만나게 된다.
프로젝트에서 MySQL 8.0.40을 사용 중이었는데 버전과 맞지 않는 의존성을 추가하여
spring.datasource.driver-class-name: com.mysql.cj.jdbc.Driver를 인식하지 못하는 문제가 발생했다.

버전에 맞게 의존성을 추가하자.
application.yml 설정
spring:
datasource:
url: jdbc:mysql://localhost:3306/데이터베이스명
username: 유저명
password: 비밀번호
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
format_sql: true
messages:
basename: messages
mvc:
hiddenmethod:
filter:
enabled: true
logging.level:
org.hibernate.SQL: debug
- datasource: 데이터베이스 연결 설정이다. 데이터베이스명과 유저명, 비밀번호를 설정해주어야 한다.
- jpa: jpa 관련 설정이다.
- ddl-auto: 개발단계 이기 때문에 create로 설정하였다.
- create : 서버를 시작할 때마다 데이터베이스 스키마를 새로 생성하고 기존 데이터를 삭제한다.
- ddl-auto: 개발단계 이기 때문에 create로 설정하였다.
- messages: 메시지 설정이다.
- basename: 메시지 파일명을 설정한다. (messages.properties)
- mvc.hiddenmethod.filter.enabled : html form이 제공하지 않는 delete, put과 같은 메서드를 사용가능하게 해 준다
- loggin.level: Hibernate가 실행하는 SQL 쿼리를 debug 레벨로 출력한다.
데이터 베이스 연동 확인
MySQL WorkBench에서 sql문을 작성하여 데이터가 정상적으로 저장되었는지 확인한다.



로그를 통해 출력된 SQL문을 확인해 본다.



다음과 같은 SQL구문을 작성하여 제약조건이 잘 설정되었는지 확인한다.
select constraint_name,table_name,constraint_type from information_schema.table_constraints where TABLE_SCHEMA = 'Board';

각 테이블에 대한 기본키 세 개,
댓글 테이블이 갖고 있는 멤버 테이블의 외래키,
댓글 테이블이 갖고 있는 게시글 테이블의 외래키,
게시글 테이블이 갖고 있는 멤버 테이블의 외래키,
멤버 테이블의 닉네임과 이메일 속성에 대한 UNIQUE 제약조건으로 총 8개의 제약조건이 제대로 설정되었다.
'프로젝트 > Board 프로젝트' 카테고리의 다른 글
| [JPA] 게시판 프로젝트 - 비동기 없이 댓글 수정 및 댓글 생성, 삭제 구현 (10) (0) | 2025.02.24 |
|---|---|
| [JPA] 게시판 프로젝트 - 게시판 페이징 구현 (9) (0) | 2025.02.15 |
| [JPA] 게시판 프로젝트 - 게시글 수정, 삭제 기능 개발 (8) (1) | 2025.02.09 |
| [JPA] 게시판 프로젝트 - 게시글 생성 기능 구현 (7) (4) | 2025.02.03 |