9.Spring(프로젝트 시작)

박종현·2024년 2월 18일

스프링 프로젝트

목록 보기
9/14

📚MariaDB

사용할 DB로 MariaDB와 MongoDB를 사용 할 예정이다. 강의를 들으면서 H2 데이터베이스를 활용하여 개발을 하였는데, DB를 교환해서 MariaDB를 사용 할 예정이다.
MariaDB는 오픈 소스 RDBMS이다. 관계형 데이터베이스로, 많은 데이터를 관리하는데 주로 사용되는 DB이다. MySQL이 오라클에 인수되고 나서, 라이선스 문제를 해결하기 위해서 나왔다. 2009년에 MySQL AB 출신 개발자들이 따로 나와 MariaDB 재단을 세워서 개발하는 중이다.

1. DB 연결

의존성 주입

Spring에서 새로운 DB를 연결하기 위해서는, 의존성을 주입해주어야한다. build.gradle에 들어가서 dependency에서 DB를 연결한다.

dependencies {
	~
	runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
}

Application.properties 수정

DB연결을 위해, 사용하는 DB의 포트번호, 테이블 이름을 기입하고, 이름 및 비밀번호를 기입해준다.

spring.datasource.url=jdbc:mariadb://localhost:3306/(데이터베이스 이름)
spring.datasource.username=(유저이름)
spring.datasource.password=(비밀번호)

2. DB 확인

강의를 이용해 만들어 둔 회원가입을 이용해 DB가 연동되고, 관리가 되는지 확인 할 것이다.

잘 되는 모습을 볼 수 있다.

발생한 문제 및 해결

처음하는 프로젝트에 있어서, 발생한 문제를 기입해두고, 해결을 적을 생각이다. 익숙해져있지 않은 개발이므로 같은 문제를 계속 만나고 해결 할 것 이므로, 꾸준히 새롭게 발생한 문제를 기입 할 예정이다.

1. Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource

발생한 에러를 해석하면 빈을 만들때 클래스 경로 리소스가 문제가 된다? 이정도가 되겠다. 나의 경우는 Maria DB의 url, Application.properties의 datasource url에 문제가 있었다.

spring.datasource.url=jdbc:mariadb://localhost:3306/(데이터베이스 이름)

DB 이름을 정해주지않아 발생한 오류였다.

2. Caused by: org.springframework.data.mapping.PropertyReferenceException: No property 'id' found for type 'User'; Did you mean 'ID'

User에 id 속성이 없다. ID가 의미하는 것인가? 뭔가 해석이 이상하지만, 쉽게 이야길 해보면 내 데이터베이스에는 id, name의 column이 있지만, 내가 User객체에 변수이름이 id가 아닌 ID를 사용하여서, id가 없어서 에러가 생긴다. ID로 만든게 아니냐? 하는 에러이다. 컬럼이름과 객체의 변수명을 같게 해주면 해결 되는 오류였다.

0개의 댓글