데이터베이스
ORM
ORM(Object-Relation Mapping)은 자바의 객체와 데이터베이스를 연결하는 프로그래밍 기법입니다.
자바에서 데이터베이스 값을 가져오려면 SQL 언어로 데이터를 꺼내야합니다.
하지만 ORM을 사용하면 데이터베이스의 값을 객체처럼 사용할 수 있습니다. 즉 자바로 데이터베이스를 다룰 수 있게하는 도구를 ORM이라고 합니다.
JPA와 Hibernate
DBMS에도 Oracle, MariaDB 등 여러 종류가 존재하듯이 ORM에도 여러 종류가 존재합니다.
자바에서는 JPA(Java Persistence API)를 표준으로 사용합니다. JPA는 자바에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스입니다. 그래서 ORM 프레임워크를 추가로 사용해야합니다. Hibernate는 JPA 인터페이스를 구현한 구현체이자 자바용 ORM 프레임워크입니다.
스프링 데이터 JPA
스프링 데이터 JPA를 사용하면 레포지토리 역활을 하는 인터페이스를 만들어 데이터베이스의 CRUD 같은 간단한 작업을 할 수 있습니다
데이터베이스 테이블 생성
이번 글에서는 사용하지 않지만 나중에 사용하기 위해 데이터베이스 테이블을 생성합니다.
생성된 테이블에 데이터를 넣어 줍니다.
확인해보면 데이터가 잘 들어가 있는 것을 확인할 수 있습니다.
데이터베이스의 테이블을 사용하기 위해서 엔티티 클래스인 Item.java를 생성합니다.
클래스는 다음과 같이 작성합니다.
해당 클래스가 엔티티 클래스인 것을 알리기 위해 @Entity 어노테이션을 사용합니다.
복붙과 마찬가지인 Getter 생성을 Lombok을 이용해서 @Getter 로 생성합니다.
id는 AUTO INCREMENT 즉 1씩 증가하는 것을 선택했기 때문에 IDENTITY로 작성합니다.
그 외에 컬럼들은 not null이기 때문에 nullable은 false로 합니다.
DTO 생성하기
DTO(Data Transfer Object)는 데이터 전송을 위한 객체로 네트워크를 통해 데이터를 전송하거나 계층 간에 데이터를 전달할 때 사용합니다.
DTO를 만들기위해서 ItemDTO 파일을 생성합니다.
ItemDTO를 다음과 같이 작성합니다. 테이블을 매핑해야 하므로 id, name, password를 작성하고 생성자를 만들어 줍니다. 그리고 ItemDTO가 완성되었으니 Item으로 이동하여 ItemDTO를 이용해 데이터를 저장하는 생성자를 작성해줍니다.
위에 코드와 같이 Item 에 ItemDTO를 이용하는 코드를 작성했습니다.
이제 ItemDTO로 Item을 생성할 수 있게 되었습니다.
레포지토리 생성하기
레포지토리 생성은 매우 간단합니다. JpaRepository 클래스를 상속받아서 생성합니다. 생성할 때는 Item 엔티티와 엔티티의 PK 타입 Long을 인수로 넣어주면 됩니다.
레포지토리 생성을 위해 ItemRepository.java 파일을 생성합니다.
레포지토리를 인터페이스로 생성한 다음 JpaRepository를 상속받은 다음 Item과 Long을 인수로 받는 코드를 작성했습니다.
'Web framework > Spring Boot' 카테고리의 다른 글
스프링 부트 컨트롤러 (0) | 2024.09.10 |
---|---|
스프링부트 서비스 (0) | 2024.09.10 |
스프링 부트 컨트롤러와 페이지 만들기 (0) | 2024.09.09 |
스프링 부트의 구조 (0) | 2024.09.09 |
스프링 부트 시작하기 (0) | 2024.08.25 |