해결된 질문
작성
·
443
1
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
안녕하세요
여기서 import org.springframework.jdbc.datasource.DataSourceUtils;
jdbc부분에 빨간줄이 생겨서 다른질문자분들이 올려주신걸 보고 어찌어찌 해결했습니다. 그런데 HelloSpringApplication을 실행할때마다 회원목록이 비어있습니다. 그리고 회원등록을 하고나서 sql문을 날리면 DB에 들어간 회원이 없습니다..
어디가 연결이 잘못된건지 잘 모르겠네요..
그리고 H2 실행할때 다음실행부터는 저 url부분에
jdbc:h2:tcp://localhost/~/test
이런식으로 넣어서 들어가라고 하셨는데 그러면 오류가 납니다.. 저 스크린샷처럼 들어가야 연결이 되는데 application.properties에 어떤 url을 써야 하나요?
답변 3
2
프로젝트 코드 확인해보았습니다.
다음 내용을 수정해보시고, 해결이 안될 경우 댓글남겨주세요.
spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
.
(2)SpringConfig 클래스
수정전)
return new MemberService(new MemoryMemberRepository());
수정후)
return new MemberService(memberRepository());
(3) JdbcMemberRepository 클래스
수정전) 29번째 줄
conn = pstmt.getConnection();
수정후)
conn = getConnection();
(1) 해당 링크의 해결방안2를 참고하여 test.mv.db파일을 C:\USERS\계정명 폴더에 생성해주세요.
그리고 h2 를 실행한 후
(2) h2에서도 동일하게 application.properties의 URL을 적용해주세요.
(3) 강의를 참고하여 ddl.SQL 파일의 내용을 h2 콘솔에 작성해서 MEMBER 테이블을 생성해주세요
.
중간에 막히는 부분이 있다면 댓글 남겨주신 것처럼 캡쳐화면을 제공해주시면 추가적인 도움 드리도록하겠습니다.
아, 맥을 사용중이시군요.
터미널을 열었을 때의 기본 경로입니다.
Users/계정명
여기에서 진행하시면 되고, 명령어 한개만 입력해주세요.
touch test.mv.db
그리고 h2를 열어서 확인해주세요
https://drive.google.com/drive/folders/1K5KRTOmuPST5bLoUpSfJe4yoAXUrB3zo?usp=sharing
알려주신 방식대로 h2콘솔 열고 주소 복사해서 넣으면 똑같이 connection is broken이 뜨고 url입력부분이 알아서 처음url로 돌아갑니다..
그리고 HelloSpringApplication 실행 후localhost창 들어가면 회원등록 무르면
이렇게 뜹니다..
추가로 올리신 코드를 실행했을 때 정상 실행되는것으로 보아 문제가 없는 것 같습니다.
기타 환경 문제로 예상이 되는데요. 다음 링크를 보시면
맥을 사용하는 점과 오류 메시지가 동일한 것으로 확인됩니다.
확인해보시겠어요?
해결이 안될 경우 h2를 설치하신 경로를 댓글 남겨주세요.
.
추가로 ,오류 메시지 전문을 확인해봐야 할 것 같습니다.
에러메시지 전체를 복사해서 댓글로 남겨주시겠어요?
전체 복사-붙여넣기가 길이제한으로 불가하다면
인텔리제이 콘솔창을 클릭한 후 exception을 검색(command+f)하면 몇몇 개가 검색이 될텐데요.
그 부분을 중점으로 남겨주시겠어요?
오류 메시지에서 중요한 부분은 어떤 Exception이 발생했는지와
caused by ~ 로 어떤 원인에 의해 발생했는지 입니다. 이 부분을 확인할 예정이므로 이 부분을 중점으로 남겨주시면 확인에 도움이 될 것 같습니다.
0
https://drive.google.com/file/d/1fnVwHy5Qc3zPjRO4uA8C6YaXbqjqTcOZ/view?usp=drive_link
제대로 압축하고 올린 것 같은데 죄송합니다..
0
안녕하세요, 인프런 AI 인턴입니다.
cksgur 님, JDBC 설정 및 H2 데이터베이스 연결 문제로 곤란을 겪고 계신 것 같습니다. 첫 번째 이미지에서 언급하신 org.springframework.jdbc.datasource.DataSourceUtils
관련 이슈 해결을 축하드립니다. 다음으로, 회원 등록 후 데이터베이스에 데이터가 보이지 않는 문제와, JDBC URL 설정 관련하여 어떻게 해야 할지 고민이시군요.
데이터가 데이터베이스에 보이지 않는 경우, 아마도 어플리케이션과 데이터베이스 간의 연결 설정에 문제가 있을 수 있습니다. 그리고 H2 데이터베이스를 처음 실행할 때와 이후 연결 설정 구성에 차이가 있을 수 있음을 주목해야 합니다.
H2 데이터베이스를 사용할 때, 처음 실행할 때는 jdbc:h2:~/test
와 같은 형식을 사용하여 데이터베이스 파일을 생성합니다. 이후 데이터베이스에 접근할 때는 서버 모드를 사용하는 경우가 많으므로, 이때는 jdbc:h2:tcp://localhost/~/test
와 같이 접근 URL을 변경해야 합니다.
회원 데이터가 데이터베이스에 보이지 않는 문제는 여러 원인에 의해 발생할 수 있습니다. application.properties 파일의 데이터베이스 URL 설정, 데이터베이스 접근 권한, 트랜잭션 설정 등 다양한 설정을 점검해야 할 필요가 있습니다.
여기에 몇 가지 유사한 질문에 대한 답변 링크를 제공합니다. 이들 링크를 통해 cksgur 님의 문제를 해결하는 데 도움이 될 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
h2콘솔에서 jdbc:h2:tcp://localhost/~/test 이렇게 입력하면 위에 메세지가 뜹니다.
그리고 HelloSpringApplication실행후 localhost창에 들어간 다음 회원목록 창을 누르면
이런식으로 뜨네요