Java 从spring boot应用程序连接到oracle数据库时如何解决“驱动程序不支持获取/设置连接网络超时”的问题?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/53940321/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-11 00:56:25  来源:igfitidea点击:

How to fix "Driver does not support get/set network timeout for connections" while connecting to oracle database from spring boot app?

javaspringoraclespring-boothikaricp

提问by juneSakura

I was trying to connect to my table and insert some data.We are using oracle database. In the code I have used oracle thin driver ojdbc14.I am getting

我试图连接到我的表并插入一些数据。我们正在使用 oracle 数据库。在代码中,我使用了 oracle 瘦驱动程序 ojdbc14。我得到了

2018-12-27 11:08:58.810  INFO 16548 --- [           main] com.zaxxer.hikari.pool.PoolBase          : HikariPool-1 - Driver does not support get/set network timeout for connections. (oracle.jdbc.driver.T4CConnection.getNetworkTimeout()I)
2018-12-27 11:08:58.810 ERROR 16548 --- [           main] com.zaxxer.hikari.pool.PoolBase          : HikariPool-1 - Failed to execute isValid() for connection, configure connection test query (oracle.jdbc.driver.T4CConnection.isValid(I)Z).

I am fairly new to spring boot and was actually trying to

我对 spring boot 还很陌生,实际上是在尝试

do this demo - https://www.devglan.com/spring-jdbc/working-with-springboot-jdbctemplate

做这个演示 - https://www.devglan.com/spring-jdbc/working-with-springboot-jdbctemplate

only changes I have done is in my pom.xml and application.properties.

我所做的唯一更改是在我的 pom.xml 和 application.properties 中。

Is there any thing else needed for oracle? How i should solve this?All the example I see for oracle in net is with hibernate.Is is necessary to include hibernate approach? Thank you in advance.

oracle 还需要什么东西吗?我应该如何解决这个问题?我在网络中看到的所有 oracle 示例都是使用 hibernate。是否需要包含 hibernate 方法?先感谢您。



pom.xml

pom.xml

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
         <groupId>com.oracle</groupId>
            <artifactId>ojdbc14</artifactId>
            <version>10.2.0.4.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!-- <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency> -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- HikariCP connection pool -->
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>3.2.0</version>
        </dependency>

    </dependencies>


application.properties

应用程序属性

spring.datasource.url=jdbc:oracle:thin:@//url/service
spring.datasource.username=user
spring.datasource.password=password
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver

回答by Arnaud Jeansen

That is because you are using a very old version of ojdbc. You should be using the latest versions of the Oracle JDBC driver to connect to your Oracle database.

那是因为您使用的是非常旧版本的 ojdbc。您应该使用最新版本的 Oracle JDBC 驱动程序连接到您的 Oracle 数据库。

From a quick test here:

从这里的快速测试: