java - H2 数据库 URL 错误

标签 java spring-boot h2 embedded-database

我有以下 H2 数据源配置

    jdbc.driverClassName=org.h2.Driver
    jdbc.url=jdbc:h2:mem:test;INIT=CREATE SCHEMA IF NOT EXISTS TESTSCHEMA\;RUNSCRIPT FROM '~/schema-test.sql'\;RUNSCRIPT FROM '~/data-test.sql';DB_CLOSE_DELAY=-1
    jdbc.user=xyzapp
    jdbc.pass=x161jq3

当我运行它时,我收到以下错误

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in com.allegis.search.ConfigTest: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceInitializer': Invocation of init method failed; nested exception is org.springframework.jdbc.datasource.init.UncategorizedScriptException: Failed to execute database script; nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; ne
sted exception is org.h2.jdbc.JdbcSQLException: URL format error; must be "jdbc:h2:{ {.|mem:}[name] | [file:]fileName | {tcp|ssl}:[//]server[:port][,server2[:port]]/name 
}[;key=value...]" but is "jdbc:h2:mem:test" [90046-196]
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1193) ~[spring-beans-4.3.12.R
ELEASE.jar:4.3.12.RELEASE]

最佳答案

此异常是由属性文件中不正确的 jdbc.url 引起的。您需要转义反斜杠字符:

jdbc.url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;INIT=CREATE SCHEMA IF NOT EXISTS TESTSCHEMA\\;RUNSCRIPT FROM '~/schema-test.sql'\\;RUNSCRIPT FROM '~/data-test.sql'

尝试这个解决方案并告诉我它是否有帮助。

关于java - H2 数据库 URL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48935235/

相关文章:

java - 带有嵌套谷歌地图 fragment 的 fragment 中后按 NullPointerException

java - 如何在 Spring Data MongoDB 中投影 $strLenCP

java - Kafka 2消费者工厂监听器没有持续连接

mysql - H2 DB 的 UNIX_TIMESTAMP 函数等效吗?

java - H2数据库错误信息本地化

java - 运行 10 次后如何终止应用程序?

java - 如何在 BorderLayout 的中心使用 JScrollpane

java - JPA Criteria API 过滤器子实体

spring - 如何在一个端点中使用不同的请求体?

java - Play框架2.0尝试级联删除时出错 "Parameter "#1"is not set; SQL statement: delete "