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

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

성장하자님의 프로필 이미지

작성한 질문수

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

13강. Spring에서 Database 사용하기

스프링 sql오류

작성

·

80

1

image.png

insert부분이랑 select부분에 저렇게 네모로 표시가 되고 오류가 떠서 웹에 사용자를 등록하면 서버 오류라고 뜨네용 ㅠㅠ

답변 4

1

성장하자님의 프로필 이미지
성장하자
질문자

예약어 충돌이라는 문제라고 하셔서 users로 테이블도 다시 만들었는데 org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "USERS" not found (this database is empty); SQL statement: 이런 오류가 뜨네요

 

1

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 성장하자님.

스프링 프로젝트에서 SQL 관련 오류로 인해 어려움을 겪고 계신 것 같습니다. 주어진 설명에 따르면, USER라는 테이블에 데이터를 삽입할 때 발생하는 오류로 보입니다. 이 문제는 USER라는 테이블명이 SQL에서 예약어로 사용되고 있어 발생할 수 있습니다.

비슷한 문제를 겪은 다른 사용자의 질문 및 해결 방법을 참고해 보시면 도움이 될 것 같습니다:

  1. “SQLSyntaxErrorException 에러가 나옵니다.ㅠㅠ”: 이 질문에서는 INSET(오타로 보입니다) 구문과 인코딩 문제로 인해 SQL 오류가 발생했습니다. 테이블명과 컬럼명을 다시 한 번 확인하여 테이블이 예약어가 아닌지, 맞다면 다른 이름을 사용하거나, 백틱(`)으로 테이블명을 감싸 사용해보세요.

  2. “13강 과정에 질문있습니다.”: H2 데이터베이스를 사용 중이라면 USER와 같은 예약어 사용으로 인한 충돌 문제를 해결하기 위한 방법도 제시하고 있습니다.

이 두 단계에서 문제가 해결되지 않는다면, 추가적인 로그 정보나 설정 파일을 확인하여 문제의 근본을 파악하는 것이 좋습니다. 문제가 계속될 경우 추가적인 설정, 특히 데이터베이스 설정(application.yml 등)과 테이블명 설정을 확인하시거나 다른 이름으로 변경하여 사용해 보세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

성장하자님의 프로필 이미지
성장하자
질문자

선생님 제가 지피티를 이용해서 오류를 잡았습니다!! 그런데 build.gradle 에서 디펜던시스 안에 implementation 'mysql:mysql-connector-java:8.0.33'

이 코드를 추가해야 한다는데 이유가 뭘까요?>

최태현님의 프로필 이미지
최태현
지식공유자

해결 되셨다니 다행이네요~

 

강의에서 제공하는 build.gradle 내의 jdbc drvier는 오래되었다 보니

처럼 적절한 의존성으로 바꿔 주어야 하는 경우도 있더라고요!

 

다만 성장하자님 처럼 application.yml 을 인식했는데 별도의 에러 없이 H2로 전환한 것은 경우가 조금 다른 듯 합니다. application.yml 에는 mysql Driver를 사용하도록 지시했고, 그걸 수행하지 못하면 위 글의 예시처럼 차라리 에러를 뱉어야 하거든요!

아무튼 해결되셨다니 다행입니다.

성장하자님의 프로필 이미지
성장하자
질문자

항상 신경써주셔서 감사합니다!!

 

0

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요 성장하자님! 🙂 우선 MySQL이 아니라 H2로 연결된 것 까지는 확인하신 것 같아요.

그리고 처리해주신 것처럼, user 는 H2에서 예약어라서 users 라는 이름의 테이블을 사용할 수 있도록 하고, ddl-auto 옵션을 적절하게 (create 혹은 create-drop) 설정해주시면 문제가 해결되는데요!

현재 근본적인 문제는 H2로 연결되었다는 것 같습니다. 13강에서 질문을 주셨으면 MySQL로 연결이 되어야 할 것 같아서요!🙂 혹시 yml 파일을 한 번 보여주실 수 있을까요?!

성장하자님의 프로필 이미지
성장하자
질문자

image.png

이겁니다!!

 

최태현님의 프로필 이미지
최태현
지식공유자

설정 자체는 잘 되어 있으시네요..! 그렇다면 H2가 아니라 mysql로 붙어야 할 것 같은데... (최소한 mysql로 붙으려다 문제가 있을 경우 에러가 발생해야 하는데...)

 

application.yml 이란 파일명과 위치가 잘 맞는지 확인 한 번 해주시고

서버 실행할 때 나오는 로그도 한 번 보내주시겠어요?!