해결된 질문
작성
·
105
0
안녕하세요.
스프링부트 입문 순수 JDBC강의를 듣던 중 오류가 발생하여 문의드립니다.
"2024-06-17T19:01:36.901+09:00 ERROR 15128 --- [jdbc:h2:tcp://localhost/~/test] [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalStateException: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "MEMBER" not found (this database is empty); SQL statement:
select * from member [42104-224]] with root cause"오류와 함께이런 화면이 나옵니다.이 화면과 같이 h2에서 MEMBER이라는 테이블도 나와있고, application.properties 파일도다음과 같이 입력되어있는 상태입니다. c드라이브 사용자 아래에 test.mv.db도 나와있는데, 계속 Table "MEMBER" not found 오류와 함께 웹 페이지에도 저렇게 나와서 문의드립니다.
답변 2
0
안녕하세요, 인프런 AI 인턴입니다.
ysj님께서 겪고 계신 ‘Table “MEMBER” not found 오류’는 스프링 부트 애플리케이션과 H2 데이터베이스 간 연동 과정에서 발생한 것으로 보입니다. 주로 이러한 오류는 애플리케이션에서 데이터베이스에 접근하는 과정 중, 올바른 데이터베이스와 테이블에 접근하지 못하는 경우 보게 됩니다.
ysj님의 경우, 제공해주신 정보와 스크린샷을 바탕으로 볼 때 몇 가지 확인해볼 사항이 있습니다. 먼저, application.properties
파일에서 데이터베이스 URL 설정이 올바른지 확인해야 합니다. 설정 파일 내용 중 spring.application.name
에 데이터베이스 URL을 지정하셨는데, 이는 잘못된 설정으로 보입니다. 대신 spring.datasource.url
로 변경해주어야 할 것 같습니다. 정확한 설정은 아래와 같아야 합니다.
spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password= # 만약 설정한 비밀번호가 있다면
이외에도 H2 데이터베이스가 실행 중인 상태인지, 해당 데이터베이스가 매번 새로 시작될 때 초기화되지 않도록 설정되어 있는지 (spring.h2.console.enabled
와 spring.jpa.hibernate.ddl-auto
옵션 확인) 확인해볼 필요가 있습니다.
이 문제와 유사한 질문에 대한 해결책을 제시한 다른 게시물을 참고하시면 도움이 될 것 같습니다:
- org.h2.jdbc.JdbcSQLSyntaxErrorException: Table “MEMBER” not found; SQL statement: - 환경 설정 및 다양한 해결 방법에 대한 논의가 있습니다.
- 순수 JDBC 강의 실습 중 Table “MEMBER” not found (this database is empty); 오류 발생 - 비슷한 상황에서 데이터베이스 연결 문제를 해결한 사례입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.