无法在Spring Boot中使用JDBC驱动程序连接到Oracle数据库

时间:2017-05-17 06:15:06

标签: java spring oracle jdbc spring-boot

我在application.properties文件中编写了数据库的url,username等。我还在控制器中为JdbcTemplate定义了@Autowired注释。但是现在当我执行时,我得到了这个错误 -

申请失败

说明

  

com.sab.Controller中的字段jdbc需要一个无法找到的类型为'org.springframework.jdbc.core.JdbcTemplate'的bean。        - Bean方法'jdbcTemplate'未加载,因为@ConditionalOnSingleCandidate(类型:javax.sql.DataSource; SearchStrategy:all)没有找到任何bean

动作:

考虑重新审视上述条件或在配置中定义类型org.springframework.jdbc.core.JdbcTemplate的bean。

任何人都可以帮我解决此错误。

1 个答案:

答案 0 :(得分:1)

您需要定义类型为JdbcTemplate的Spring bean。您可以通过向Spring Boot应用程序类添加@Bean方法来创建并返回JdbcTemplate。例如:

@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 bean。例如(您需要在此处输入适当的值;这是使用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数据库),您需要在dependencies的{​​{1}}部分中显示此内容:

pom.xml