2017-05-17 2 views
-3

데이터베이스의 url, username 등을 application.properties 파일에 작성했습니다. 또한 JdbcTemplate 컨트롤러에 @Autowired 주석을 정의했습니다. 하지만 지금은 실행할 때, 나는이스프링 부트에서 JDBC 드라이버를 사용하여 Oracle 데이터베이스에 연결할 수 없습니다.

응용 프로그램을 시작하지 못했습니다 오류 - 수


설명 : com.sab.Controller에서

필드 JDBC 유형의 콩 '조직이 필요합니다. springframework.jdbc.core.JdbcTemplate '을 찾을 수 없습니다. - @ConditionalOnSingleCandidate (:의 javax.sql.DataSource; SearchStrategy : 유형 모두) 때문에로드되지 콩 방법 'JdbcTemplate을'어떤 콩

를 찾지 못했습니다

작업 :

위의 조건을 재 방문하거나 정의 고려 구성에 org.springframework.jdbc.core.JdbcTemplate 유형의 bean.

누구든지이 오류를 해결하는 데 도움을 줄 수 있습니까?

+0

후 구성뿐만 아니라 당신이 올바른 종속성이 있는지 확인하십시오. 또한 [여기]를보십시오 (https://springframework.guru/configuring-spring-boot-for-oracle/) – XtremeBaumer

+0

오류 메시지는 당신이해야 할 일에 대한 제안을 제공합니다. 너 그거 해봤 니? 스프링 부트는 자동으로 JdbcTemplate 빈을 생성하지 않는다. 'JdbcTemplate'을 반환하는'@ Bean' 어노테이션을 사용하여 스프링 부트 애플리케이션 클래스에 메소드를 추가하십시오. – Jesper

+0

@XtremeBaumer 종속성을 확인했지만 누락 된 항목이 없습니다. –

답변

0

JdbcTemplate 유형의 Spring bean을 정의해야합니다. JdbcTemplate을 생성하고 리턴하는 Spring Boot 애플리케이션 클래스에 @Bean 메소드를 추가하면된다. 예를 들면 :

@SpringBootApplication 
public class ExampleApplication { 

    @Bean 
    public JdbcTemplate jdbcTemplate(DataSource dataSource) { 
     return new JdbcTemplate(dataSource); 
    } 

    public static void main(String[] args) { 
     SpringApplication.run(ExampleApplication.class, args); 
    } 
} 

아직 수행하지 않은 경우에도, 당신은 파일 src/main/resources/application.properties에 대한 데이터베이스 연결의 속성을 추가해야합니다. Spring Boot는 이것들을 사용하여 DataSource 빈을 만든다. 예를 들어 (당신이 여기에 적절한 값을 둘 필요가, 이것이 H2 메모리 데이터베이스를 사용하는 예입니다) : 마지막으로

spring.datasource.url=jdbc:h2:mem:demo 
spring.datasource.username=sa 
spring.datasource.password= 
spring.datasource.driver-class-name=org.h2.Driver 

, 당신은 적절한 데이터베이스에 대한 종속성이 있는지 확인해야합니다 운전자가 pom.xml입니다. (예를 들어 H2 데이터베이스에), 당신은 pom.xmldependencies 섹션에서이 필요합니다 :

<dependency> 
    <groupId>com.h2database</groupId> 
    <artifactId>h2</artifactId> 
    <scope>runtime</scope> 
</dependency> 
관련 문제