안녕하세요. hia의 개발 story입니다.
오늘은 스프링 JPA에 관한 글을 쓰려고 합니다.
Spring JPA는 공식 홈페이지에서 설명하는 것과 같이 Spring에서 Jakarta Persistence API(JPA)를 사용할 수 있도록 하는 것입니다.
JPA 데이터소스에 접근하기 쉽도록 만들어져 있어 간단한 설정만으로도 JPA를 사용할 수 있습니다.
CRUD(Crate, Read, Update, Delete) 작업을 쉽게 처리할 수 있습니다.

Spring Data JPA - Reference Documentation
Example 119. Using @Transactional at query methods @Transactional(readOnly = true) interface UserRepository extends JpaRepository { List findByLastname(String lastname); @Modifying @Transactional @Query("delete from User u where u.active = false") void del
docs.spring.io
이제 만들어져 있는 스프링 프로젝트에 JPA를 적용해 보도록 하겠습니다.
먼저 JPA를 사용하기 위해서는 의존성 항목을 추가해주어야 합니다.
JPA 의존성 주입
maven dependency
- pom.xml 에 <dependencies> 안에 입력.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.7.0</version>
</dependency>
gradle dependency
- build.gradle 에 dependencies {} 안에 입력.
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
어떤 빌드 툴을 사용했는지에 따라 dependency를 입력해 주면 됩니다.
이제 gradle을 다시 로드하여 실행시켜 보면 아래와 같은 에러가 발생합니다.

에러가 발생하는 이유는 아직 데이터베이스에 대한 설정이 되어있지 않기 때문입니다.
그럼 이제 mariadb JDBC 드라이버를 설치하고 프로젝트 내에 MariaDB를 설정해 보겠습니다.
MariaDB JDBC 드라이버 설치
mariadb 드라이버와 관련된 정보는 메이븐 레파지토리 사이트에서 찾아올 수 있습니다.
아래 사이트에 접속하여 각각의 빌드툴에 맞게 dependency를 적용해 주면 됩니다.
https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client/2.7.0

프로젝트 내에서 MariaDB 설정하기
적용이 완료되면 application.properties 파일에 MariaDB에 관련된 설정을 해줍니다.
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/[설정한 database 이름]
spring.datasource.username=[사용자명]
spring.datasource.password=[비밀번호]
설정이 완료되고 다시 gradle을 로드하고 실행하면 에러 없이 잘 실행이 되는 걸 확인할 수 있습니다.
'Springboot' 카테고리의 다른 글
[Spring Boot] JpaRepository를 이용한 CRUD 테스트 예제 공부 (0) | 2023.03.21 |
---|---|
[Spring Boot] Spring JPA 엔티티 클래스 작성해서 테이블 만들기 (0) | 2023.03.20 |
[Spring Boot] header 메뉴 선택 시 jquery로 class 값 변경하기 (0) | 2022.12.22 |
[Spring Boot] Thymeleaf를 이용한 header, footer 등 공통 페이지 조각 만들기 (0) | 2022.12.14 |
[Spring Boot] 무료 템플릿을 이용한 홈페이지 제작 (0) | 2022.12.07 |