본문 바로가기
Framekwork/SPRING

[SPRING] 스프링 부트 - 회원 관리 예제 > 회원 도메인과 리포지토리 만들기

by 아이엠제니 2023. 8. 31.

 

 


 

회원 도메인과 리포지토리 만들기

회원 객체

💾 domain/Member.java

package hello.hellospring.domain;

public class Member {
    private Long id;
    private String name;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

 

리포지토리

💾 repository/MemberRepository.java (인터페이스)

package hello.hellospring.repository;

import hello.hellospring.domain.Member;

import java.util.List;
import java.util.Optional;

public interface MemberRepository {
    Member save(Member member); // 저장

    Optional<Member> findById(Long id); //  id 찾기

    Optional<Member> findByName(String name); // name 찾기

    List<Member> findAll(); // 모든 저장된 내용 반환
}

 

💾 repository/MemoryMemberRepository.java

package hello.hellospring.repository;

import hello.hellospring.domain.Member;

import java.util.*;

public class MemoryMemberRepository implements MemberRepository {

    private static Map<Long, Member> store = new HashMap<>(); // 저장
    private static long sequence = 0L; // 키 값 생성

    @Override
    public Member save(Member member) {
        member.setId(++sequence);
        store.put(member.getId(), member);
        return member;
    }

    @Override
    public Optional<Member> findById(Long id) {
        return Optional.ofNullable(store.get(id));
    }

    @Override
    public Optional<Member> findByName(String name) {
        return store.values().stream()
                .filter(member -> member.getName().equals(name))
                .findAny(); // findAny는 하나라도 찾는 것
    }

    @Override
    public List<Member> findAll() {
        return new ArrayList<>(store.values());
    }
}

 

 

 


values() ???

values() 메소드는 자바에서 맵(Map) 인터페이스의 하위 인터페이스인 Map 또는 HashMap 등에서 제공되는 메소드 중 하나임. 이 메소드는 해당 맵의 모든 값들을 컬렉션 형태로 반환하는 역할을 함

보통 맵은 "키-값" 쌍으로 데이터를 저장하고 관리하는 자료구조임. 맵의 values() 메소드를 호출하면 맵 내의 모든 값들이 컬렉션 형태로 반환되며, 이 컬렉션은 각 값들을 순회하거나 다양한 연산을 수행할 수 있는 메서드들을 제공함

 

출처: chat gpt

 

 

 

인프런 김영한 - <스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술> 실습
300x250