[Java 웹개발 마스터] 스터디1. JPA 사용하기

2021. 1. 12. 05:41·OLD/Back End
반응형

위 사이드 프로젝트는 패스트 캠퍼스 온라인 강의 Java 웹 개발 마스터 올인원 패키지 Online. 를 수강하면서 진행한 것이다. 

JPA는 Java Persistant Application 의 약자로 ORM(Object Relational Mapping)을 자바에서 사용하기위한 명세이다. 한마디로 ORM 인터페이스를 모아둔 것이다. 웹 상의 객체와 데이터베이스의 테이블을 맵핑시켜주는 프로그램이라 할 수 있겠다.

 


1. Gradle 에서 JPA 설정하기

우선 Gradle 에서 JPA 를 사용하기 위해서는 gradle.build 의 dependency에서 implementation 을 사용하여 의존성을 기입해준다.

build.gradle 은 Maven 의 pom.xml 과 같은 역할을 한다고 생각하면 된다. 


2.  JPA 사용하기

우선, 프로젝트에 Entity 를 만들어준다.

Entity 는 다른의미로는 DAO 또는 VO 라고 불리는데, 이것들은 데이터베이스로 데이터를 전달할 때, 데이터를 해당 컬럼에 매칭시켜주기위한 객체의 역할을 한다. GETTER, SETTER 를 통해 설정하는 방법이 있지만, 편리하게 LomBok 을 사용하여 심플하게 매핑시켜주고 있다.

그 다음으로는 JPA Repository 를 만든다.

Jpa Repository 는 MyBatis 에 직접 치는 SQL 쿼리문 등을 모아놓은 것이라고 생각하면 편한데, 우리가 직접 치는 수고를 덜어줘 객체르 관리하는 것에 더욱 집중하게 만들어준다. 아래는 Test 에서 사용했는데, 대체적으로 Service 에서 아래와 같이 JPA를 사용한다고 보면 될 것 같다.

우선, Person DAO 객체를  가져와서 데이터를 담아준다. 

그 다음에, personRepository 를 가져와서 사용하고자 하는 JPA 문법을 사용해주는데 위 이미지에서는 데이터 베이스에 저장하기 위해 SVAE( ) 를 사용해주고 findall( ) 로 저장된 데이터를 불러와주었다. 성공하면, 아래와 같이 나타난다.


위와 같이, JPA 를 사용하면 편리한 점은 개발자가 직접 쿼리문을 실행시키지 않아도 된다는 것이었다. 프로젝트를 할 때 MyBatis 를 많이 사용하고 있는데, MyBatis 의 경우에는 쿼리문도 신경써야되서 신경쓸 것이 너무 많은데.. JPA 의 경우에는 사용하기만 하면, 객체의 관리에만 집중하면 되니 쿼리문에 신경쓰지 않아도 되어서 개발을 진행하는데 편리했던 것 같다.

반응형
저작자표시 비영리 변경금지 (새창열림)

'OLD > Back End' 카테고리의 다른 글

[Java 웹개발 마스터] 스터디3. 왜 Getter, Setter 를 사용할까  (0) 2021.01.22
[Java 웹개발 마스터] 스터디2. Lombok 이란  (0) 2021.01.13
[Spring ] Spring 의 주요 구조에 대한 간단한 개념  (0) 2021.01.10
[ Spring ] JPA 관련 기본 개념 정리 - 갓대희의 작은 공간 일부 캡쳐  (0) 2020.12.26
[Spring boot] Intellij 의 Spring initializer 가 뜨지 않을 때  (0) 2020.12.19
'OLD/Back End' 카테고리의 다른 글
  • [Java 웹개발 마스터] 스터디3. 왜 Getter, Setter 를 사용할까
  • [Java 웹개발 마스터] 스터디2. Lombok 이란
  • [Spring ] Spring 의 주요 구조에 대한 간단한 개념
  • [ Spring ] JPA 관련 기본 개념 정리 - 갓대희의 작은 공간 일부 캡쳐
쟈누
쟈누
Ad astra per aspera
    반응형
  • 쟈누
    쟈누의 기록공간
    쟈누
  • 전체
    오늘
    어제
    • 분류 전체보기 (444)
      • AWS (31)
        • Glue (4)
        • S3 (1)
      • 클라우드 (0)
      • Data Engineering (37)
        • GitHub (10)
        • NiFi (11)
        • Spark (10)
        • Snowflake (0)
        • 머신러닝, AI (6)
      • 언어 (118)
        • 데이터 베이스 (42)
        • JAVA (9)
        • Python (34)
        • Java Script (15)
        • Linux (18)
      • 프로젝트, 인강 그리고 책 (30)
        • Spotify Project (7)
        • RASA chatbot Project (9)
        • Naver shopping Project (6)
        • 빅데이터를 지탱하는 기술 (8)
      • OLD (56)
        • IT 용어 사전 (13)
        • Front End (12)
        • Back End (31)
      • Error code 모음 (165)
        • 1. SQL errors (17)
        • 2. Hadoop errors (20)
        • 3. Linux Errors (14)
        • 4. Python errors (33)
        • 5. JAVA, Spring errors (41)
        • 6. Jav Script errors (10)
        • 7. Dev Tools errors (9)
        • 8. Git errors (8)
        • 9. Jenkins Errors (4)
        • 10. airflow Errors (2)
        • 11. Aws errors (7)
      • 개인 (1)
        • 책 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 블로그 관리
    • 글쓰기
  • 링크

  • 공지사항

    • 간단한 블로그 소개
  • 인기 글

  • 태그

    NiFi
    설치
    SQL
    node
    java
    error
    API
    AWS
    json
    자바
    python error
    리눅스
    MySQL
    Python
    Spring
    linux
    파이썬
    install
    에러
    Git
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
쟈누
[Java 웹개발 마스터] 스터디1. JPA 사용하기
상단으로

티스토리툴바