인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

이기적인 개발자님의 프로필 이미지
이기적인 개발자

작성한 질문수

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

순수 JDBC

org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "MEMBER" not found; SQL statement: select * from MEMBER [42102-200]

작성

·

2.4K

0

2021-01-14 22:31:29.644 ERROR 74220 --- [nio-8080-exec-8] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "MEMBER" not found; SQL statement:
select * from MEMBER [42102-200]] with root cause

오류 부분은 하단과 같습니다!
	at tutorial.tutorialspring.repository.JdbcMemberRepository.findAll(JdbcMemberRepository.java:72) ~[classes/:na]
	at tutorial.tutorialspring.service.MemberService.findMembers(MemberService.java:38) ~[classes/:na]
	at tutorial.tutorialspring.controller.MemberController.list(MemberController.java:39) ~[classes/:na]

JdbcMemberRepository 부분을 그대로 복사 붙여넣기했는데 왜 이런 오류가 나는지 잘 모르겠어요 ..

import javax.sql.DataSource;

@Configuration
public class SpringConfig {

    private DataSource dataSource;

    @Autowired
    public SpringConfig(DataSource dataSource){
        this.dataSource = dataSource;
    }

    @Bean
    public MemberService memberService(){
        return new MemberService(memberRepository());
    }

    @Bean
    public MemberRepository memberRepository(){
        return new JdbcMemberRepository(dataSource);
    }
}

SpringConfig 부분도 강의 내용과 동일합니다!

연결 은 잘 된 것 같은데, SyntaxError가 왜 나는걸까요..?

H2에 select * from MEMBER 쿼리문을 똑같이 보내면 잘 적용되지만, Spring에서는 안되네요.. ㅠ

답변 6

3

저도 똑같은 오류나서 혹시나 도움이 되시는 분 계실지도 모르겠어서 일단 댓글 남겨요

저같은 경우는 오탈자가 크흑~ ㅠ.ㅠ

application.properties 파일에서

spring.datasource.url=jdbc:h2:tcp://localhost/~/test 이렇게 입력해야 하는데

spring.datasoruce.url=jdbc:h2:tcp://localhost/~/test 이렇게 입력해서 오류가 났었어요

오탈자 있어도 실행 중에 오류가 안나서 한참 못찾다가 하루 꼬빡 날리고 찾았어요

혹시나 저처럼 삽질 하시느 분들 계시면 참고하세요 ㅠ.ㅠ

0

해결하셨나요??!

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 천혜린님

위에 분들은 해결이 되신듯요^^ 혹시 추가로 궁금한 내용이 있으면 질문을 새로 작성해서 올려주시면 도움을 드리겠습니다. (여기는 너무 오래된 내용이라..)

감사합니다.

0

김영한님의 프로필 이미지
김영한
지식공유자

H2를 켜고 하셔야 합니다. h2 데이터베이스에 접근해서 데이터를 주고 받기 때문입니다.

0

하루 지나고 어제는 안되었었는데.. 다음날에 어떠한 수정 없이 다시 실행 해보니까 되네요... 왜 안되었던거지... 원인이 뭐였는지 전혀 감이 잡히질 않네요.. 

0

++추가로 다음 강의인 통합테스트를 진행하면 문제 없이 잘 돌아갑니다 ㅠ H2를 끄고 테스트하면 안되고, H2를 키고 테스트하면 테스트 완료됩니다..

정말 왜그럴까요  ㅠㅠ 3시간째 찾아보는데  원인을 모르겠어요..

0

추가로 H2 프로세스를 종료하고 실행해도 같은 오류가 나네요..; 다른 오류가 날 것으로 기대했는데 단순히 테이블을 못찾는 오류는 아닌 것 같아요 ㅠ

이기적인 개발자님의 프로필 이미지
이기적인 개발자

작성한 질문수

질문하기