【问题标题】:H2 DB runscript errorH2 DB 运行脚本错误
【发布时间】:2011-11-23 05:37:32
【问题描述】:

我在 H2 数据源配置中有以下行:

<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.h2.Driver" />
    <property name="url" value="jdbc:h2:mem:test_db;INIT=CREATE SCHEMA IF NOT EXISTS test_db;\\;RUNSCRIPT FROM '~/sql/populate.sql'\\;DB_CLOSE_DELAY=-1" />
</bean>

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

SQL state [90046];error code [90046]; 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_db" [90046-160]; nested 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...]" b
ut is "jdbc:h2:mem:test_db" [90046-160]

我不明白,有人可以在这里看到错误吗?

【问题讨论】:

    标签: java hibernate h2


    【解决方案1】:

    试试:

    <property name="url" value="jdbc:h2:mem:test_db;INIT=CREATE SCHEMA IF NOT EXISTS test_db\;RUNSCRIPT FROM '~/sql/populate.sql';DB_CLOSE_DELAY=-1" />
    

    【讨论】:

      【解决方案2】:

      您可能打破了 ;key=value 模式。您必须转义分号。 “test_db”之后的分号没有被转义。试着把它排除在外。

      jdbc:h2:mem:test_db;INIT=CREATE SCHEMA IF NOT EXISTS test_db\;RUNSCRIPT FROM '~/sql/populate.sql';DB_CLOSE_DELAY=-1
      

      【讨论】:

      • 只有一个反斜杠(我犯了同样的错误)。不知道如何避免这种“逃离地狱”......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      • 2015-01-10
      • 2013-12-11
      • 2018-04-01
      • 2012-02-09
      • 1970-01-01
      • 2018-11-16
      相关资源
      最近更新 更多