Spring - Model

CYSSSSSSSSS·2024년 4월 15일
0

스프링

목록 보기
11/16

Spring

Model

  • Spring에서 데이터베이스를 구축하기위해 model을 사용한다.

User Table Setting

package com.example.spring.portfolio.model;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;


import java.sql.Timestamp;


@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id; // primary key
    private String username;    // 사용자 아이디
    private String password;    // 회원 비밀번호
    private String email;   // 이메일
    private boolean admin;  // 관리자 여부
    private Timestamp createDate;   // 계정 생성 시간
}

어노테이션

  • @Data: 롬복에서 제공하는 어노테이션으로 클래스의 모든 필드에 대한 getter,setter,equals,hashcode,toString등의 메서드를 자동으로 제공합니다.
  • @NoArgsConstructor: 롬복 어노테이션으로,파라미터가 없는 기본 생성자를 자동으로 생성합니다.
  • @AllArgsConstructor: 롬복 어노테이션으로,모든 필드를 인자로 받는 생성자를 자동으로 생성한다.
  • @Builder: 롬복 어노테이션으로,빌더 패턴을 자동으로 생성하여 객체를 생성할 때 빌더를 사용할 수 있도록 합니다.
  • @Entity: JPA에서 엔티티 클래스임을 나타내는 어노테이션으로 해당 클래스가 데이터베이스의 테이블과 매핑되는 엔티티임을 나타냅니다.
  • @Id: 엔티티 클래스에서 주키를 지정하는 어노테이션으로,해당 필드의 엔티티의 주키로 사용함을 나타낸다.
  • @GeneratedValue: 주키 값의 생성 전략을 지정하는 어노테이션으로,여기서는 IDENTITY 전략을 사용하여 데이터베이스가 자동으로 주키 값을 생성하도록 한다.

column setting

public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id; // primary key
    @Column(nullable = false , length = 30) // nullable 데이터베이스에서 null이 가능한지 , 최대 길이 설정
    private String username;    // 사용자 아이디
    @Column(nullable = false , length = 30)
    private String password;    // 회원 비밀번호
    @Column(nullable = false , length = 30)
    private String email;   // 이메일
    @Column(nullable = false,columnDefinition = "BOOLEAN DEFAULT false")    // boolean 값 default 설정 
    private boolean admin;  // 관리자 여부
    @CreationTimestamp
    private Timestamp createDate;   // 계정 생성 시간
}

어노테이션

  • @Column: 컬럼의 규칙을 설정할 수 있는 어노테이션 입니다.
  • nullable : 해당 컬럼이 생성 될때 null을 허용할 것인가
  • length : String 문자열의 최대 길이 지정
  • columnDefinition : DB의 기본정보를 직접 줄 수 있음
  • @CreationTimestamp : 객체가 생성될때 생성되는 시간 자동으로 등록하는 어노테이션

JPA

  • 자바 스프링에서 데이터베이스를 사용하기 위해서는 JPA 설정을 해야한다.

  • resource 폴더에 있는 application.properties 파일에 추가하면 된다.

  • driver-class-name: 사용할 데이터베이스 명시

  • datasource.url : db를 사용하고 있는 url 명시

  • datasource.username: 데이터베이스 사용자 이름

  • datasource.password : 데이터베이스 비밀번호

profile
개발자 되고 싶어요

0개의 댓글