Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- AWS
- paraller
- redux
- 도커빌드
- vue.js
- VUE
- quert
- 자바
- 애그리거트
- 리덕스
- 리덕스 공식문서
- .getClass()
- exiting abnormally
- ACCESS_REFUSED
- Java Reflextion API
- 오라클 병렬처리
- forNmae()
- Express
- react
- rabbitmq 에러
- 커스텀 로그인
- 컴포넌트 주도
- 오라클
- REDIS
- 트리 회전
- $emit()
- EBS
- 자료구조
- 네임드 뷰
- 리액트
Archives
- Today
- Total
개발정리
JPA-설정 본문
spring lagacy 프로젝트를 생성하고 프로젝트의 이름을 JPA_TEST로 하겠습니다.
이때, 템플릿은 스프링 MVC프로젝트로 합니다.
JPA를 사용하기 위해서는 pom.xml에 다음과 같은 의존성을 주입 해 주어야 합니다.
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.6.14.Final</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.33</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<scope>provided</scope>
</dependency>
이 예제에서는 mysql을 사용할 것이라 mysql connector-j 를 추가 해 주었습니다.
클래스의 getter와 setter를 추가할 때 용이한 lombok도 추가 해 주었습니다.
프로젝트의 src/main/resource/META-INF 폴더에 persistence.xml 파일을 생성해 줍니다.
그리고 다음과 같이 작성 합니다.
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="hello">
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="1234"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/jpa?characterEncoding=UTF-8&serverTimezone=UTC"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL8Dialect"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.use_sql_comments" value="true"/>
<property name="hibernate.hbm2ddl.auto" value="create"/>
</properties>
</persistence-unit>
</persistence>
다음과 같은 설정으로 jpa와 mysql을 연결 할 수 있습니다.
이제 src/main/java에 entity패키지를 만들고 member엔티티를 만듭니다.
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.Data;
@Data
@Entity
@Table
public class Member {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
}
@Entity는 이 클래스를 엔티티로 지정한다는 의미 입니다.
@Table은 엔티티와 매핑할 테이블을 지정합니다
@Id 는 해당 컬럼을 pk로 설정 합니다.
이제 client클래스를 생성해서 멤버를 db에 추가해 봅시다.
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import com.woo.jpaTest.entity.Member;
public class Test {
public static void main(String[] args) {
EntityManagerFactory emf=Persistence.createEntityManagerFactory("hello");
EntityManager em =emf.createEntityManager();
EntityTransaction tx=em.getTransaction();
tx.begin();
Member member=new Member();
member.setName("Tom");
em.persist(member);
tx.commit();
}
}
다음과 같은 코드를 실행 하면
성공적으로 db에 값이 들어간것을 보실수 있습니다.
여기에서 persist메서드는 db에 값을 저장할때 사용하며 트랜잭션 안에서 동작합니다.
'스프링 > JPA' 카테고리의 다른 글
JPA-다대다 매핑 (0) | 2023.09.02 |
---|---|
JPA-일대일 매핑 (0) | 2023.09.01 |
JPA-다대일 연관관계 매핑 (0) | 2023.08.31 |
JPA-영속 컨텍스트 (0) | 2023.08.30 |