들어가며
본 글은 김영한님의 [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-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 |