전체 방문자
오늘
어제
21종
종이의 코딩 공부방
21종
  • 분류 전체보기 (171)
    • JAVA (64)
    • Springboot (46)
      • 블로그만들기 (45)
    • Database (60)
      • Oracle (60)
    • 프로젝트 3 (CELOVER) (0)
    • 개발서버 구축 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
21종

종이의 코딩 공부방

Springboot/블로그만들기

[Springboot] 블로그 만들기 (6)_User Table 생성

2023. 11. 22. 16:00

패키지 생성

경로 : src/main/java/com/lwj/blog/model

 

클래스 생성

 

User.java

package com.lwj.blog.model;

import java.sql.Timestamp;

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

import org.hibernate.annotations.ColumnDefault;
import org.hibernate.annotations.CreationTimestamp;

import com.sun.istack.NotNull;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
// ORM -> java(다른언어) Object --> 테이블로 매핑해주는 기술
@Entity // User 클래스가 MySQL에 테이블이 생성이 된다. // 이 어노테이션이 가장 가까이 있는게 좋다
public class User {
	
	@Id // Primary key
	@GeneratedValue(strategy = GenerationType.IDENTITY) 
	//프로젝트에서 연결된 DB의 넘버링 전략을 따라간다. 
	// application.yml에서 use-new-id-generator-mappings: false 설정돼있어야함
	private int id;	// 시퀀스, mySQL : auto_increment // 자동으로 들어갈꺼임
	  
	@Column(nullable=false, length = 30)
	private String userName; // 아이디
	
	@Column(nullable=false, length = 100) 
	// 100은 너무 길잖아 why ? 123456 => 해쉬 (비밀번호 암호화-> 엄청길다)
	private String password; // 비밀번호
	
	@Column(nullable=false, length = 50)
	private String email; // 이메일
	
	@ColumnDefault("'user'") // 문자열인걸 알려주기 위해 ""안에 '' 를 사용한다
	private String role; // Enum을 쓰는게 좋다. // admin, user, manager 
	// Enum을 쓰면 도메인설정을 가능하게 한다. admin, user, manager만 들어가게 할 수 있다.
	
	@CreationTimestamp // 현재시간으로 시간이 자동 입력
	private Timestamp createDate;
	
	// 스프링 실행하면 동작한다 . 단 서비스에서 mySQL이 동작중이어야한다.
}

 

application.yml

  jpa:
    open-in-view: true
    hibernate:
      ddl-auto: create #기존의 유저테이블이 있어도 프로젝트를 실행할 때마다 실행한다는 뜻 (최초에만 Create 그 이후는 Update)
      naming:
        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl # 엔티티만들때 변수명 그대로 DB필드에 넣어준다. 
      use-new-id-generator-mappings: false #JPA 가 사용하는 기본 넘버링을 따라가지 않는다.
    show-sql: true #콘솔창에 sql을 띄워준다. 
    properties:
      hibernate.format_sql: true # sql을 정렬해서 띄워준다. 이거 안쓰면 한줄로 띄움(가독성떨어진다.)

 

MySQL에서 확인


참고 유튜브 (메타코딩님 강의)

https://youtu.be/6ynr-XAI-rk?si=oFWoqpPtgDrCRI1O

    'Springboot/블로그만들기' 카테고리의 다른 글
    • [Springboot] 블로그 만들기 (8)_Reply Table 생성
    • [Springboot] 블로그 만들기 (7)_Board Table 생성, 연관관계 주인
    • [Springboot] 블로그 만들기 (5)_Yaml, Yml 설정, JSP 연결
    • [Springboot] STS4에 HTML, CSS, JSP 없을때
    21종
    21종
    코딩 공부한 것 정리하려고 만든 블로그

    티스토리툴바