H2데이터베이스 연결(인메모리)

박경희·2023년 7월 16일
0

공부를 해보자

목록 보기
17/40
post-thumbnail

프로젝트 세팅

프로젝트를 생성하면 application.properties가 생성된다.

yml로 작성하기 위해 기존 properties를 지우고 yml파일 생성.

*yml작성 참고 - https://wadekang.tistory.com/27

  • 다른 블로그를 찾아보며 yml을 작성했을 때에는 뭔가 잘 안 맞았는지 실행이 잘 되지 않았는데 여기 블로그를 참고해서 작성하니 실행이 잘 됐다.

  • 나는 새로 세팅해보며 글을 작성하는 것이므로 좀 더 자세한 방법을 보고 싶다면 위의 블로그를 참고하면 좋을 것 같다.

  • 어플리케이션 실행.

  • http://localhost:8080/h2-console 로 접속

    -> connect

Entity

@Entity
@Getter
@NoArgsConstructor

public class Member {
    
    @Id @GeneratedValue
    private Long id;
    private String name;

    public Member(String name) {
        this.name = name;
    }
}

Repository

@Repository
public interface MemberRepository extends JpaRepository<Member, Long> {
}

Dto

@Getter
public class MemberDto {
    private Long id;
    private String name;
}

Service

@Service
@RequiredArgsConstructor
public class MemberService {
    private final MemberRepository memberRepository;

    public Long save(String name) {
        Member member = new Member(name);
        memberRepository.save(member);
        return member.getId();
    }
}
  • public을 private로 해서 계속 오류가 났다. 접근제한을 잘 확인하자.

Controller

@RestController
@RequiredArgsConstructor
public class MemberController {
    private final MemberService memberService;

    @PostMapping("/member")
    public Long save(@RequestBody MemberDto memberDto) {
        return memberService.save(memberDto.getName());
    }
}
  • 이렇게 만들고 어플리케이션을 실행하면 h2데이터베이스에 MEMBER테이블이 생성된 것을 확인할 수 있다.

멤버 넣기 (Talend)

  • 당연히 잘 되겠지~ 하고 send를 눌러보니 Not Found...

-> Controller를 살펴보니 'mamber'라고 적어놨다..^-^...
Controller의 PostMapping("/member") 에 적어준 /member이 요청하는 url과 일치해야 된다.
오타를 수정하고 다시 send를 보내니 데이터가 잘 들어가는 것을 볼 수 있다.

  • h2 콘솔창으로 가서 확인해보면 방금 넣었던 hello가 들어가있다.

오늘은 h2데이터베이스 인메모리 형식으로 save를 해봤다.
CRUD를 연습해보며 이해도를 높여봐야겠다~~! 화이팅~!

1개의 댓글

comment-user-thumbnail
2023년 7월 17일

저도 개발자인데 같이 교류 많이 해봐요 ㅎㅎ! 서로 화이팅합시다!

답글 달기