1

私のアプリケーションでは、すべての HSQL 接続を閉じ、データベース ファイルを削除してから、新しいデータベースを作成する新しい接続を開く機能が必要です。ディスクで CACHED テーブルを使用しています。

私が見つけたのは、HSQLが古いデータベースの内容を覚えているということです - ディスクからそれらのファイルを完全に削除し、新しい接続を確立したにもかかわらず! org.hsqldb.jdbc.JDBCConnection クラスのコンストラクターにブレークポイントを設定して、新しい Connection オブジェクトを取得していることを確認しました (私は取得しています)。

プロセスを停止して開始すると、HSQL は古いデータベースを正しく「忘れ」、新たに開始しますが、これはサーバー側のプロセスであり、簡単に停止して開始することはできません。

これまでに見つけた唯一の解決策は、HSQL データ ファイルへのパスを微調整して、最後の接続でキャッシュされたデータを使用しないようにすることです。HSQL で呼び出してキャッシュをクリアできるメソッドがあることを願っています。これにより、古いデータからデータが記憶されていない状態で新しい接続が開始されます。

4

1 に答える 1

1

データベースをシャットダウンする必要があります。これにより、開いたままになっているすべての接続が閉じられ、キャッシュがクリアされます。

SQL ステートメント SHUTDOWN が使用されます。

シャットダウン後にファイルを削除できます。

于 2013-05-24T10:06:04.290 に答える