无法获取oracle的驱动程序实例 [英] Failed to get driver instance for oracle

查看:739
本文介绍了无法获取oracle的驱动程序实例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试连接到oracle数据库,正在将Spring Boot配置与YAML文件一起使用,已经在pom和jpa中配置了jdbc,但仍然无法连接.

I’m trying to connect to my oracle database, I’m using a spring boot configuration together with YAML file, I’ve configured jdbc in pom and jpa, but it still fails to connect.

我已经尝试了许多不同的网址配置:

I’ve tried many different configuration for the url:

1)  jdbcUrl=jdbc:oracle:thin://test.test.test:1521

2)  jdbcUrl=jdbc:oracle:thin@test.test.test:1521 

3)  jdbcUrl=jdbc:oracle://test.test.test:1521 

4)  jdbcUrl=jdbc:oracle@test.test.test:1521 

这是我的application.yml

here my application.yml

spring:
  profiles: test
datasource:
  onlineterminierung:
    url: jdbc:oracle: jdbc:oracle:thin://test.test.test:1521
    database: test
    username: test
    password: test
    driverClassName: oracle.jdbc.driver.OracleDriver
    defaultSchema:
    maxPoolSize: 20
    hibernate:
      hbm2ddl.method: update
      show_sql: false
      format_sql: true
      dialect: org.hibernate.dialect.Oracle10gDialect

还有DataSource bean:

and here the DataSource bean:

  /*
     * Configure HikariCP pooled DataSource.
     */
    @Bean
    public DataSource dataSource() {
        DataSourceProperties dataSourceProperties = dataSourceProperties();
        HikariDataSource dataSource = (HikariDataSource) DataSourceBuilder.create(dataSourceProperties.getClassLoader())
                .driverClassName(dataSourceProperties.getDriverClassName()).url(dataSourceProperties.getUrl()).username(dataSourceProperties.getUsername())
                .password(dataSourceProperties.getPassword()).type(HikariDataSource.class).build();
        dataSource.setMaximumPoolSize(maxPoolSize);
        return dataSource;
    }

这里是pom:

<dependency>
      <groupId>com.oracle</groupId>
      <artifactId>ojdbc14</artifactId>
      <version>10.2.0.3.0</version>
      <scope>test</scope>
</dependency>

这里是堆栈:

HHH000342: Could not obtain connection to query metadata : Failed to get driver instance for jdbcUrl=jdbc:oracle:thin://test.test.test:1521
    Unable to build Hibernate SessionFactory
    Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory
    Caused by: java.lang.RuntimeException: Failed to get driver instance for jdbcUrl=jdbc:oracle:thin://test.test.test:1521
    Caused by: java.sql.SQLException: No suitable driver

有什么主意吗?

推荐答案

语法:

jdbc:oracle:thin:@host:port:db," usname," pwd"

jdbc:oracle:thin:@host:port:db","usname","pwd"

@Autowired
    DataSource dataSource;



@Bean(name = "dataSource")
public DriverManagerDataSource dataSource() {
    DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource();
    driverManagerDataSource.setDriverClassName("oracle.jdbc.OracleDriver");
    driverManagerDataSource.setUrl("jdbc:oracle:thin:@hostname:1521/dbname");
    driverManagerDataSource.setUsername("uname");
    driverManagerDataSource.setConnectionProperties(getadditionalJpaProperties());
    driverManagerDataSource.setPassword("password");
    return driverManagerDataSource;
}

Properties getadditionalJpaProperties() {
    Properties properties = new Properties();
    // properties.setProperty("hibernate.hbm2ddl.auto", "create-drop");
    properties.setProperty("hibernate.dialect", "org.hibernate.dialect.Oracle10gDialect");
    properties.setProperty("hibernate.show_sql", "true");

    return properties;
}

这篇关于无法获取oracle的驱动程序实例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆