티스토리 뷰
반응형

들어가며

본 글은 김영한님의 [JAVA ORM 표준 JPA 프로그래밍] 책의 예제를 따라하기 위한 기본 프로젝트 세팅 과정입니다.

책에서는 H2 DB를 이용해 실습을 진행하지만, 본 글에서는 MySql을 연동하는 방법을 다루고 있습니다.

H2 DB가 아닌 MySql을 이용해서 실습을 진행하고 싶으신 분은 하단 프로젝트를 클론하시면 수월하게 실습을 시작할 수 있습니다.

 

깃허브 링크 (예제 프로젝트 기본세팅)

https://github.com/marooo326/Jpa-basic

 

GitHub - marooo326/Jpa-basic: 자바 ORM 표준 JPA 프로그래밍 예제 레포지토리

자바 ORM 표준 JPA 프로그래밍 예제 레포지토리. Contribute to marooo326/Jpa-basic development by creating an account on GitHub.

github.com

 

프로젝트 세팅

1. Pom.xml 수정

https://mvnrepository.com/ 에서 mysql을 검색해 MySQL Connector/J 선택하고, 자신이 설치한 MySql 버전에 맞춰서 Pom.xml에 dependency를 추가해준다.

맥북의 경우, 시스템 설정에서 MySql의 버전을 확인할 수 있다.

<dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.0.33</version>
</dependency>
<dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>5.6.15.Final</version>
</dependency>

Pom.xml에도 동일한 8.033 버전을 추가한다. (다른 버전의 경우 오류가 발생할 수도 있으므로 가급적이면 버전을 맞춰 추가하도록 하자)

 

추가로, JPA를 사용하기 위해 구현체인 hibernate-entitymanager 모듈도 추가해준다.

1. hibernate-core: Hibernate ORM의 핵심 기능을 제공하는 모듈
2. hibernate-entitymanager: hibernate-core를 기반으로 한 JPA EntityManager 구현체

 

2. persistence.xml 생성

프로젝트 설정을 위해 resources > META-INF 폴더(직접 생성)에 persistence.xml 파일을 생성해준다.

persistence.xml 파일 예제

필수 속성에 persistence-unit과 사용자 이름 및 비밀번호를 알맞게 입력해주고, url에 알맞은 주소 및 스키마 이름을 넣어준다.

 

3. DB 테이블 생성

DB 연결을 위한 설정을 모두 완료했으니, SQL문을 작성해 DB에 테이블을 만들어주도록 하자.

CREATE TABLE MEMBER (
	ID VARCHAR(255) NOT NULL,
	NAME VARCHAR(255),
    AGE INTEGER NOT NULL,
    PRIMARY KEY(ID)
)

쿼리문을 실행 후 스키마 정보를 새로고침해보면 다음과 같이 테이블이 생성된 것을 볼 수 있다.

 

4. Entity 생성

JPA 실습을 위해 Entity를 생성해준다.

package jpa;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class MEMBER {
    @Id
    private Long id;

    @Column
    private String name;

    @Column
    private Long age;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getAge() {
        return age;
    }

    public void setAge(Long age) {
        this.age = age;
    }
}

 

5. 예제 코드로 정상 연결여부 확인

프로젝트에 main.java 파일을 만들어준 뒤, 예제코드를 작성해 정상적으로 동작하는지 확인해본다.

Main.java코드 예제

package jpa;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;

public class Main {
    public static void main(String[] args) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
        EntityManager em = emf.createEntityManager();
        EntityTransaction tr = em.getTransaction();
        tr.begin();
        try {
            MEMBER member = new MEMBER();
            member.setId(1L);
            member.setName("hello");
            member.setAge(10L);

            em.persist(member);
            tr.commit();
        } catch (Exception e) {
            tr.rollback();
        }finally {
            em.close();
        }
        emf.close();

    }

성공적으로 연동되었다면 다음과 같이 데이터베이스에 레코드가 추가된 것을 확인할 수 있다.

반응형

'Java & Spring' 카테고리의 다른 글

Web Server / Web Application Server / Web Container  (0) 2023.08.22
[Java] Comparator.compare Overriding  (0) 2023.08.05
[Java] Cheat sheet 알고리즘용  (0) 2023.07.25
[Java] String reverse  (0) 2023.07.11
[JPA] Entity 기본값 지정  (2) 2023.06.30
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함