HSQLDB のドキュメントには、HSQLDB サーバーを起動するためのコマンド ライン ステートメントがあります ( HSQLDB Doc )。しかし、この「file:mydb」プロパティがあるので、メモリのみのモードではないと思います。
メモリのみの HSQLDB サーバーを実行するにはどうすればよいですか?
以下を実行しましたが、手がかりがありません。
java -cp ../lib/hsqldb.jar org.hsqldb.Server -?
HSQLDB のドキュメントには、HSQLDB サーバーを起動するためのコマンド ライン ステートメントがあります ( HSQLDB Doc )。しかし、この「file:mydb」プロパティがあるので、メモリのみのモードではないと思います。
メモリのみの HSQLDB サーバーを実行するにはどうすればよいですか?
以下を実行しましたが、手がかりがありません。
java -cp ../lib/hsqldb.jar org.hsqldb.Server -?
サーバーをメモリ内で起動して外部からアクセスする方法を理解するのに約2日かかりました。これが誰かの時間を節約することを願っています。
Server server = new Server();
server.setDatabaseName(0, "mainDb");
server.setDatabasePath(0, "mem:mainDb");
server.setDatabaseName(1, "standbyDb");
server.setDatabasePath(1, "mem:standbyDb");
server.setPort(9001); // this is the default port
server.start();
CRUDのためにメモリ内データベースにアクセスする必要がある場合は、次のことを行う必要があります:-
String url="jdbc:hsqldb:hsql://192.168.5.1:9001/mainDb";
Class.forName("org.hsqldb.jdbc.JDBCDriver");
Connection conn = DriverManager.getConnection(url, "SA", "");
ここで、192.168.5.1 は HSQL が実行されているサーバーの IP です。スタンバイ Db に接続するには、最初の行で mainDb をスタンバイ Db に置き換えます。接続を取得したら、データベース関連のすべての操作を実行できます。
DatabaseManagerSwing を使用してリモートからサーバーに接続するには、次のことを行う必要があります。
hsqldb-xxx jar をダウンロードしてフォルダーにコピーします (xxx はバージョンです)。ターミナルまたはコマンド プロンプトを開き、フォルダーに cd して実行します。
java -cp hsqldb-x.x.x.jar org.hsqldb.util.DatabaseManagerSwing
[タイプ] ドロップダウンから [HSQL データベース エンジン サーバー] を選択し、URL として [jdbc:hsqldb:hsql://192.168.5.1:9001/mainDb] を指定します。これにより、リモートの HSQL インメモリ サーバー インスタンスに接続されます。
ハッピーコーディング!!
DbManagerSwing UI
使用するjava -cp .\hsqldb-1.8.0.10.jar org.hsqldb.Server -database.0 mem:aname
メモリ モードでは、接続 URL によって指定されます。したがって、必要に応じて、同じディレクトリに server.properties ファイルを配置し、mem
プロトコルを使用するように接続 URL を設定できます。または、許可する別のアプリケーションで hsqldb を使用している場合jdbc などの接続 URL を指定するには、 を指定しますjdbc:hsqldb:mem:aname
。
ファイルはデータベースをメモリにロードするために使用され、サーバーが停止したときに保持されると思います。実行中にファイルにアクセスすることはないと思います。
HSQLDB(またはH2)を使用してからしばらく経ちましたが、それがどのように機能するかはかなり確信しています。