HSQLDB 用 ant 管理一个新的独立数据库 [Table Not Found In Statement]

Posted

技术标签:

【中文标题】HSQLDB 用 ant 管理一个新的独立数据库 [Table Not Found In Statement]【英文标题】:HSQLDB Manage a new standalone database with ant [Table Not Found In Statement] 【发布时间】:2013-03-11 21:38:21 【问题描述】:

我打算使用 HSQLDB,我正在尝试使用 ant 的示例。

构建文件:

<target name="create.tables">
  <echo>Creating tables using: $db.driver $db.url</echo>
  <sql driver="$db.driver"
      url="$db.url"
      userid="$db.username"
      password="$db.password"
      onerror="continue"
      src="hsqldb/create_cars.sql">
      <classpath refid="hsqldb.database" />
  </sql>
</target>

<target name="load.data">
  <echo>Load Data Using: $db.driver $db.url</echo>
  <sql  driver="$db.driver"
      url="$db.url"
      userid="$db.username"
      password="$db.password"
      onerror="continue"
      src="hsqldb/load_data.sql">
      <classpath refid="hsqldb.database" />
  </sql>
</target>

属性:

db.driver=org.hsqldb.jdbcDriver
db.url=jdbc:hsqldb:file:hsqldb/dbcars
db.username=sa
db.password=

create_tables.sql:

CREATE TABLE cars (
     id INTEGER NOT NULL PRIMARY KEY,
     description VARCHAR(255)
) ;

load_data.sql:

INSERT INTO cars (id, description) VALUES (1, 'first car') ;
INSERT INTO cars (id, description) VALUES (2, 'second car') ;

create.tables 目标有效,但 load.data 给出此错误:

[sql] java.sql.SQLException: Table not found in statement [ SELECT * FROM cars]

【问题讨论】:

请在您的问题中包含相关代码。 【参考方案1】:

这通常是由与数据库的短时间连接引起的。表定义没有持久化,以后也找不到了。查看可以使用的连接属性列表:

http://www.hsqldb.org/doc/2.0/guide/dbproperties-chapt.html

然后试试这个:

db.driver=org.hsqldb.jdbcDriver
db.url=jdbc:hsqldb:file:hsqldb/dbcars;shutdown=true
db.username=sa
db.password=

如果不行,试试这个:

db.driver=org.hsqldb.jdbcDriver
db.url=jdbc:hsqldb:file:hsqldb/dbcars;hsqldb.write_delay=false
db.username=sa
db.password=

【讨论】:

以上是关于HSQLDB 用 ant 管理一个新的独立数据库 [Table Not Found In Statement]的主要内容,如果未能解决你的问题,请参考以下文章

使用 hsqldb 部署独立的 java 应用程序

如何连接到独立的 HSQLDB

idea配置ant项目

将数据库连接到 HSQLDB 服务器

在应用程序启动时启动 HSQLDB 数据库管理器?

HSQLDB服务器ACL不生效