[Spring Boot] 스프링부트 (IntelliJ)/JPA

[JPA] Mysql JPA 테이블 추가하기

류도토리 2024. 2. 22. 17:21

전에 했던 내용을 복습하기 위해 Member 테이블을 하나 더 생성했다

persistence.xml 파일에 
<class>jpabasic.reserve.domain.Member</class> 를 추가했다.

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="2.2">
    <persistence-unit name="jpabegin" transaction-type="RESOURCE_LOCAL">
        <!-- 매핑 클래스 -->
        <class>jpabasic.reserve.domain.User</class>
        <class>jpabasic.reserve.domain.Member</class>

        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <properties>
            <!-- DB연결 설정 -->
            <property name="jakarta.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
            <property name="jakarta.persistence.jdbc.url"
                      value="jdbc:mysql://localhost/jpabegin?characterEncoding=utf8"/>
            <property name="jakarta.persistence.jdbc.user" value="JPAUSER"/>
            <property name="jakarta.persistence.jdbc.password" value="JPAPASS"/>

            <!-- 하이버네이트 DB종류 설정 -->
            <!-- JPA는 특정 데이터 베이스에 종속 되지 않음 -->
            <!-- 데이터 베이스 별 차이나는 문법을 모두 다 사용 가능 -->
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>

            <!-- 커넥션풀 설정 -->
            <property name="hibernate.hikari.poolName" value="pool"/>
            <property name="hibernate.hikari.maximumPoolSize" value="10"/>
            <property name="hibernate.hikari.minimumIdle" value="10"/>
            <property name="hibernate.hikari.connectionTimeout" value="1000"/> <!-- 1s-->
        </properties>
    </persistence-unit>
</persistence>

 

 

테이블과 일치하게 VO도 추가하여 작성했다

package jpabasic.reserve.domain;

import jakarta.persistence.*;
import java.time.LocalDateTime;

@Entity
@Table(name = "member")
public class Member {
    @Id
    private String email;
    private String name;
    @Column(name = "create_date")
    private LocalDateTime createDate;

    public Member() {
    }

    public Member(String email, String name, LocalDateTime createDate) {
        this.email = email;
        this.name = name;
        this.createDate = createDate;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getName() {
        return name;
    }

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

    public LocalDateTime getCreateDate() {
        return createDate;
    }

    public void setCreateDate(LocalDateTime createDate) {
        this.createDate = createDate;
    }

    @Override
    public String toString() {
        return "Member{" +
                "email='" + email + '\'' +
                ", name='" + name + '\'' +
                ", createDate=" + createDate +
                '}';
    }
}

 

그리고 기존에 했던 class에 한명 추가해서 실행했다

package main;

import jakarta.persistence.*;
import jpabasic.reserve.domain.Member;


public class UserSaveMain {
    public static void main(String[] args){
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabegin");
        EntityManager em = emf.createEntityManager();
        EntityTransaction tx = em.getTransaction();
        tx.begin();

        Member member = new Member();

        member.setName("아아");
        member.setEmail("user@user.com");
        em.persist(member);

        tx.commit();

        em.close();

        emf.close();
    }
}

 

성공

'[Spring Boot] 스프링부트 (IntelliJ) > JPA' 카테고리의 다른 글

[JPA] CascadeType 영속성 전이  (0) 2024.03.27
[JPA] 엔티티 설계시 주의점  (0) 2024.03.27
[JPA] 인텔리제이에서 간단하게 JPA 돌려보기  (0) 2024.02.21
[JPA] ORM  (0) 2024.02.07
JPA란?  (0) 2023.12.19