2017-06-13 24 views
0

我試圖連接到我的oracle數據庫,我使用的是與YAML文件一起的彈簧引導配置,我在pom和jpa中配置了jdbc,但它仍然無法連接。無法獲得oracle的驅動程序實例

我已經嘗試過許多不同配置的網址:

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

2) jdbcUrl=jdbc:oracle:[email protected]:1521 

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

4) jdbcUrl=jdbc:[email protected]:1521 

這裏我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 

,這裏的數據源豆:

/* 
    * 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 

一些想法?

+1

JDBC: oracle:thin @ OldProgrammer

+0

jdbc:oracle:thin:@host:port:db「,」usname「,」pwd「 – Pradeep

回答

3

語法:

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; 
} 
+0

您可以通過修改主機的詳細信息和其他方法將上述內容添加到您的配置中。對我來說 – Pradeep

+0

謝謝,現在我得到錯誤:TNS:偵聽器當前不知道連接描述符中請求的服務;你知道它會是什麼嗎? – mattobob

+0

你有連接到數據庫manualy使用蟾蜍或SQL開發? – Pradeep

1

務必使用讓您靈活地通過各種連接級參數的URL連接的長形式。 GitHub上的代碼示例DataSourceSample有一個示例URL以供參考。

JDBC:預言:瘦:@(DESCRIPTION =(ADDRESS =(HOST =爲myhost)(PORT = 1521)(PROTOCOL = TCP))(CONNECT_DATA =(SERVICE_NAME = myorcldbservicename)))「;

相關問題