[스프링부트 나만의 블로그 만들기] 04. 초기 테스트 (회원가입을 위한 insert 테스트)

이경민·2022년 9월 6일
0

spring

목록 보기
13/20

Controller

join 기능을하는 controller 생성하기

join1

  • 통신: POST
  • Body에 key와 value를 적어서 넘긴다.

code

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class DummyControllerTest {

    // http://localhost:8080/dummy/join (요청)
    // http의 body에 username, password, email 데이터를 가지고 (요청)
    @PostMapping("/dummy/join")
    public String join(String username, String password, String email) {
        System.out.println("username: "+username);
        System.out.println("password: "+password);
        System.out.println("email: "+email);
        return "회원 가입이 완료되었습니다";
    }
}

Postman


join2

  • 통신: POST
  • User 모델을 사용해서 데이터 넘기기.
  • Body에 key와 value를 적어서 넘긴다.

code

import com.example.goormblog.model.User;
import com.example.goormblog.repository.UserRepository;

@RestController
public class DummyControllerTest {

    @Autowired    // 의존성 주입 (DI)
    private UserRepository userRepository;

    // http://localhost:8080/dummy/join2 (요청)
    @PostMapping("/dummy/join2")
    public String join2(User user) {
        System.out.println("id: "+user.getId());
        System.out.println("username: "+user.getUsername());
        System.out.println("password: "+user.getPassword());
        System.out.println("email: "+user.getEmail());

        // System.out.println("role: "+user.get());
        System.out.println("createDate: "+user.getCreateDate());

        // 내용 삽입하는 코드
        userRepository.save(user);

        return "회원 가입이 완료되었습니다";
    }

}

"userRepository.save(user)" 코드를 이용해 DB에 내용을 삽입할 수 있다.

Postman

MySQL



Repository

Entity에 의해 생성된 DB에 접근하는 메서드(ex) findAll()) 들을 사용하기 위한 인터페이스.

엔티티를 선언해 생성된 데이터베이스에 어떤 값을 넣거나, 넣어진 값을 조회하는 등의 CRUD(Create, Read, Update, Delete)를 정의하는 계층

code

import com.example.goormblog.model.User;
import org.springframework.data.jpa.repository.JpaRepository;

// DAO
// 자동으로 bean 등록이 된다.
// @Repository // 생략 가능.
public interface UserRepository extends JpaRepository<User, Integer> { }

Enum 사용하기

enum 코드

public enum RoleType {
    USER, ADMIN
}

User Model 코드 추가 내용

// DB는 RoleType이 없다.
// @ColumnDefault("'user'")
@Enumerated(EnumType.STRING)
private RoleType role; // Enum 사용 권고: admin, user, manager

Controller 추가 내용

@PostMapping("/dummy/join2")
public String join2(User user) {
	System.out.println("id: "+user.getId());
    System.out.println("username: "+user.getUsername());
    System.out.println("password: "+user.getPassword());
    System.out.println("email: "+user.getEmail());

    // System.out.println("role: "+user.get());
    System.out.println("createDate: "+user.getCreateDate());
    
	// enum 추가 내용
    user.setRole(RoleType.USER);
    // 내용 삽입하는 코드
    userRepository.save(user);

    return "회원 가입이 완료되었습니다";
}

0개의 댓글