java.sql.SQLException: Driver:oracle.jdbc.driver.OracleDriver 为 URL 返回 null:jdbc:h2:/data/sample;IFE
Posted
技术标签:
【中文标题】java.sql.SQLException: Driver:oracle.jdbc.driver.OracleDriver 为 URL 返回 null:jdbc:h2:/data/sample;IFEXISTS=TRUE【英文标题】:java.sql.SQLException: Driver:oracle.jdbc.driver.OracleDriver returned null for URL:jdbc:h2:/data/sample;IFEXISTS=TRUE 【发布时间】:2015-12-29 23:48:16 【问题描述】:免责声明:Spring-boot新手。
我正在尝试设置一个 H2 数据库以使用 spring-boot 进行集成测试。
我收到错误:java.sql.SQLException: Driver:oracle.jdbc.driver.OracleDriver@2e179f3e returned null for URL:jdbc:h2:/data/sample;IFEXISTS=TRUE
我不确定在这里做什么。
我必须覆盖spring.datasource.url
,因为该值应该在应用程序中。
FirstTest.groovy
>package com.api
import groovy.util.logging.Slf4j
import org.junit.Test
import org.junit.runner.RunWith
import org.springframework.boot.test.IntegrationTest
import org.springframework.boot.test.SpringApplicationConfiguration
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Api.class)
@IntegrationTest(value = "spring.profiles.active=h2")
@Slf4j
class FirstTest
@Test
void test()
log.info 'debug log statement'
src/test/resources/config/application-h2.properties
spring.datasource.dataSourceClassName=org.h2.jdbcx.JdbcDataSource
spring.datasource.url=jdbc:h2:/data/sample;IFEXISTS=TRUE
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.database=H2
pom.xml
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
...
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.189</version>
</dependency>
...
编辑:这篇文章:spring boot default H2 jdbc connection (and H2 console) 似乎回答了我的问题
src/test/resources/config/application-h2.properties
spring.datasource.url=jdbc:h2:mem:foo-database;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
【问题讨论】:
【参考方案1】:看起来您需要显式设置 JDBC 驱动程序类名称,就像您在其他定义中所做的那样:
spring.datasource.driverClassName=org.h2.Driver // <== add this
spring.datasource.dataSourceClassName=org.h2.jdbcx.JdbcDataSource
spring.datasource.url=jdbc:h2:/data/sample;IFEXISTS=TRUE
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.database=H2
另请参阅related question。
【讨论】:
以上是关于java.sql.SQLException: Driver:oracle.jdbc.driver.OracleDriver 为 URL 返回 null:jdbc:h2:/data/sample;IFE的主要内容,如果未能解决你的问题,请参考以下文章
java.sql.SQLException: SQL 语句在 org.hsqldb.jdbc.JDBCUtil.sqlException 处关闭
Oracle DB:java.sql.SQLException:关闭连接
Cause: java.sql.SQLException: 请求的转换无效 ; uncategorized SQLException for SQL []; SQL state [99999]; er
java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 发生错误