Sangwon Coding
Spring Boot - Entity, Repository 본문
Camel Case : 단어를 표기할 때 첫 문자는 소문자로 시작하며 띄어쓰기 대신 ( 대문자 )로 단어를 구분 Java의 변수를 선언할 때 camelCase 로 선언한다.
ex) phoneNumber , createdAt, updatedAt
Snake Case : 단어를 표기할 때 모두 소문자로 표기하며, 띄어쓰기 대신 ( _ ) 로 표기 DB 컬럼에 사용
ex) phone_number , created_at , updated_at
API를 정의하기에 따라 다르지만, 주로 API통신 규격에는 구간에서는 Snake Case를 많이 사용 합니다.
Entity
JPA에서는 테이블을 자동으로 생성해주는 기능 존재.
DB Table == JPA Entity
Jpa의 Entity 및 column 은 자동으로 camel case -> DB 의 snake_case에 매칭 시켜줍니다!
User.java
package com.example.study.model.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.time.LocalDateTime;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity // ==table
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String account;
private String email;
private String phoneNumber;
private LocalDateTime createdAt;
private String createdBy;
private LocalDateTime updatedAt;
private String updatedBy;
}
Repository
따로 쿼리문 을 작성하지 않아도 기본적인
CREATE : 생성
READ : 읽기 (SELECT)
UPDATE : 업데이트
DELETE : 삭제
를 가능하게 해줌
UserRepository.java (Interface)
package com.example.study.repository;
import com.example.study.model.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}
UserRepositoryTest.java
package com.example.study.repository;
import com.example.study.StudyApplicationTests;
import com.example.study.model.entity.User;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.time.LocalDateTime;
public class UserRepositoryTest extends StudyApplicationTests {
// Dependency Injection (DI)
@Autowired
private UserRepository userRepository;
@Test
public void create(){
// String sql = insert into user (%s, %s, %d) value (account, email, age);
User user = new User();
user.setAccount("TestUser03");
user.setEmail("TestUser03@gmail.com");
user.setPhoneNumber("010-3333-3333");
user.setCreatedAt(LocalDateTime.now());
user.setCreatedBy("TestUser3");
User newUser = userRepository.save(user);
System.out.println("newUser : " + newUser);
}
public void read(){
}
public void update(){
}
public void delete(){
}
}
'Spring > Spring Boot (어드민 페이지)' 카테고리의 다른 글
Spring Boot - 어드민 프로젝트를 위한 ERD 설계 (0) | 2019.11.22 |
---|---|
Spring Boot - JPA 연관관계 설정 (1) | 2019.11.22 |
Spring Boot - JPA를 이용한 CRUD (0) | 2019.11.21 |
Spring Boot - Lombok, JPA (0) | 2019.11.19 |
Spring Boot - RestAPI (0) | 2019.11.19 |
Comments