1

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]
4

1 に答える 1

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=
于 2013-03-11T22:41:09.937 に答える