인프런 커뮤니티 질문&답변

Jisu Shin님의 프로필 이미지
Jisu Shin

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

H2 와 웹페이지 연동이 안되는 듯 합니다

해결된 질문

작성

·

180

1

순수 JDBC 수업을 들으며 코드를 복붙하였고 클래스리소스 위치도 봤는데 웹페이지에서 H2에 저장된 데이터가 보이지 않습니다

웹페이지에서 보이는 목록입니다

 

 

H2에서 보여지는 데이터입니다

 

application.properties 와 SpringConfig 코드창을 올립니다

스프링부트 3.X 자바는 17버전을 사용하고 있습니다

혹시 몰라 인텔리제이에서 H2를 연동하였는데도 웹페이지에서 DB로 저장이 안되네요 ㅠㅠ

어느 부분을 더 검색해서 조치해야할까요...

답변 1

1

안녕하세요. Jisu Shin님, 공식 서포터즈 OMG입니다.

도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.

실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx


주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요


추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명


링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.

Jisu Shin님의 프로필 이미지
Jisu Shin
질문자

친절한 답변 감사합니다

https://drive.google.com/file/d/1Nywy96fOIkU0kcVsY-X8YgDP5i8H0aeB/view?usp=sharing

 

1. 문제 영역을 실행할 수 있는 방법

<1> HelloSpringApplication 클래스를 실행합니다

<2> http://localhost:8080/members 로 이동하여 리스트를 확인합니다 (0건이 정상)

<3> H2 console을 통해 spring, spring2 데이터를 추가해줍니다

drop table if exists member CASCADE;
create table member
 ( 
     id   bigint generated by default as identity,
     name varchar(255),
     primary key (id)
);

insert into member(name) values('spring');
insert into member(name) values('spring2');

SELECT * FROM MEMBER;

<4> 위 쿼리 결과를 통해 데이터 2행이 나온다

2. 문제가 어떻게 나타나는지에 대한 상세한 설명

-> h2 console을 통해 데이터를 넣었는데도 http://localhost:8080/members 로 이동하여 목록을 확인하면 값이 없다

http://localhost:8080/members/new 에서 데이터를 추가했는데도 DB에 값이 들어가지 않는다

확인부탁드립니다

감사합니다

프로젝트 코드 확인해보았습니다.

MemberService생성자를 보면, 생성자의 인자로 memberRepository가 아닌, new MemoryMemberRepository로 메모리 데이터 저장소를 사용하고 있습니다.

이로 인해 Jdbc, JdbcTemplate, Jpa등의 DB접근 기술을 사용하더라도 Memory저장소만 고정으로 사용하게됩니다.

정상 동작하게 변경하려면 this.memberRepository = memberRepository;로 변경하시면 됩니다.

image

Jisu Shin님의 프로필 이미지
Jisu Shin
질문자

감사합니다 바로 해결하였습니다!!!

Jisu Shin님의 프로필 이미지
Jisu Shin

작성한 질문수

질문하기