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

Yeahwon Do님의 프로필 이미지
Yeahwon Do

작성한 질문수

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

순수 JDBC

JdbcMemberRepository에서 import 문제

작성

·

2.8K

1

선생님 안녕하세요.

우선 정말 이 수업을 개설해 주셔서 정말정말 감사하다는 말씀 드립니다. 프로젝트 수업으로 스프링 프레임워크에서 스트레스를 엄청 받다가 선생님의 강의를 듣고 한줄기 희망이 생겼습니다!!!

지금 DB 파트 강의에서 순수 JDBC 듣는 중인데, 원래는 오라클 SQL을 사용하려다 import 하는 부분에서 막히길래, 역시 강의와 다른 걸 쓰려니 힘들구나 싶어서ㅜㅜ 우선은 그냥 수업에서 사용하시는 H2로 다시 시도하고 원리를 좀 깨친 다음에 오라클로 재시도 하려 했습니다만.... 결국은 똑같은 곳에서 문제가 생기길래 이렇게 질문을 드립니다.

H2에서 DB 생성하고, build.gradle에서 의존성 주입했고, application.properties에 url, driver-class-name까지 설정은 완료한 상태입니다. 그러고나서 JdbcMemberRepository 코드를 작성했는데, 이상하게 이 부분만 import에서 오류가 생깁니다.

import org.springframework.jdbc.datasource.DataSourceUtils;
(밑줄 친 부분에 오류가 있다고 빨간 줄이 생김)

에러메시지는  "The import org.springframework.jdbc cannot be resolved" 라고 뜨고, 클래스를 새로 생성하라는 식으로만 나오고 있습니다 ㅜㅜ

강제로 실행시키면 다음 메시지가 나옵니다.

"
Description:
Parameter 0 of constructor in hello.hellospring.SpringConfig required a bean of type 'javax.sql.DataSource' that could not be found.

The following candidates were found but could not be injected:

- Bean method 'dataSource' in 'JndiDataSourceAutoConfiguration' not loaded because @ConditionalOnClass did not find required class 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType'

- Bean method 'dataSource' in 'XADataSourceAutoConfiguration' not loaded because @ConditionalOnClass did not find required class 'javax.transaction.TransactionManager'

Action:

Consider revisiting the entries above or defining a bean of type 'javax.sql.DataSource' in your configuration.

"

사용 환경은 윈도10 / Eclipse EE / Spring boot 2.3.3. 입니다.
수업을 착실히 들었다고 생각했는데 혹시 설정 같은 걸 빼먹은 게 아닌지 싶은데, 구글링해도 답을 얻을 수 없어 여쭤봅니다. 감사합니다 !!

답변 4

1

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

Yeahwon Do님 제 생각에는 우선 라이브러리가 import가 잘 안된 것 같아요.

1. eclipse gradle dependencies 갱신을 검색해서 gradle 의존관계를 다시 설정한다.

2. 프로젝트를 새로 만들어서 기존 코드를 복사 붙이기 한다. (프로젝트 새로 구성)

3. 1,2 번에 실패하면 전체 코드를 복사해서 전체 프로젝트를 압축해서 올려주세요.

0

안녕하세요~

아마 다들 문제 해결하셨을 것 같은데, 후에 Eclipse로 공부하시는 분들 참고 차 남겨봅니다.

Eclipse IDE에서는 build.gradle 파일 상 Gradle dependencies 추가 후,

Project에서 오른쪽 버튼 > Gradle > Refresh Gradle Proejct를 수행해야 dependency Update가 수행된다고 합니다.

감사합니다.

image

0

Yeahwon Do님의 프로필 이미지
Yeahwon Do
질문자

안녕하세요. 답변 감사합니다.

저도 JDBC 의존성 주입 문제인가 해서 다시 봤지만, 강의 교안에 있는 코드를 그대로 붙여넣은 거라 동일하게 입력했습니다.
(springframework-boot 버전 2.3.3. / io.spring.dependency-management 버전 1.0.10 부분만 다름)

혹시 사전에 따로 설치해야하는 것이나 다른 설정해야할 것들이 또 있진 않을지요?
이전에 스프링 프레임워크로 공부할 때는 별도로 oracle JDBC, hikari CP 등 설치하고 의존성 설정했었는데, 이번 과정에서는 그런 내용이 없어서, 혹시 제가 뭘 빼먹은 건 아닌가 싶습니다 ㅜㅜ

안녕하세요.

혹시 해결 하셨을까요?

0

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

안녕하세요. Yeahwon Do님^^

build.gradle이 다음과 같은지 확인해주세요^^!

제 생각에 jdbc 관련이 잘 안들어간 것 같아요.

plugins {
	id 'org.springframework.boot' version '2.3.1.RELEASE'
	id 'io.spring.dependency-management' version '1.0.9.RELEASE'
	id 'java'
}

group = 'hello'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-jdbc'
	runtimeOnly 'com.h2database:h2'
	testImplementation('org.springframework.boot:spring-boot-starter-test') {
		exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
	}
}

test {
	useJUnitPlatform()
}

확인해보시고 답변 남겨주세요^^ 감사합니다.

Yeahwon Do님의 프로필 이미지
Yeahwon Do

작성한 질문수

질문하기