問題タブ [hsqldb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - DDDサンプルアプリケーション-hsqldbはどこにありますか?
DDDサンプルアプリケーション(Eric Evansの本に基づく)をダウンロードしましたが、hsqldbを使用しています。ただし、このデータベースがどのように設定されているかがわかりません。私はIntellijでプロジェクトを開始し、すべてが魅力のように構築されています。しかし、そのようなhsqldbはどこにも見つかりません...私は経験豊富なJava開発者ではないので、おそらく何かが足りません。私のためにこれに答えることができる人はいますか?
java - インメモリ データベース close()
インメモリ データベースでは、ResultSet、Statement、および Connection を閉じる必要がありますか?
私の Java プログラムは、HSQLDB を使用して「メモリ テーブル」を作成し、後でクエリを実行するデータを入力します。永続性はありません。すべてはメモリ内で行われます。このプログラムはシングルスレッドで、データベース接続は 1 つだけです (つまり、データベース接続プーリングはありません)。
java - スクリプトを実行してHSQLDBでテーブルを作成する
hsqldbを使用して、データベースアクセスを必要とする単体テストを実行します。
今のところ、特定のテスト用のテーブルを作成したい場合、次のコードがあります。
このメソッドは、コンテキストgetConnection()
で定義されたデータソースを取得します。Spring
ここで、SQLスクリプトからテーブルを作成したいと思います(もちろん、このスクリプトには複数のテーブル作成が含まれます)。
HSQLDBのドキュメントで、起動時にスクリプトを実行するように依頼できることがわかりました。ただし、実行時にスクリプトを実行したいので、要件を満たしていません。
もちろん、自分でファイルを読み取ることもできます。すべてのSQLステートメントに対してps.executeUpdate()
コマンドを実行しますが、この種のソリューションは使用したくありません(他にソリューションがない場合を除く)。
何か案が?
java - SimpleJdbcTestUtils.executeScriptおよび複数行スクリプト
単体テスト用のSQLスクリプトファイルをロードしたい。Spring 2.5.2を使用しているので、次のコードを使用して、このメソッドを使用してスクリプトファイルをロードすることにしました。SimpleJdbcTestUtils.executeScript()
create-table.sql
各SQLステートメントをファイルの1行に記述すれば、すべて問題ありません。しかし、ステートメントを複数行に書き込むと、ステートメントが。で終了していても、エラーが発生します;
。
作業スクリプト:
スクリプトが機能しない:
2番目のファイルのエラー:
より複雑なテーブルを作成したいので、SQL命令をより読みやすい方法で記述し、数行を使用することを好みます。それを行う方法はありますか?
java - 本番環境で HSQLDB を使用しても安全ですか? (JBoss AS5.1)
JBoss 開発者は、HSQLDB を永続ストレージとして使用しないよう警告しています ( JBoss wikiを参照)。HSQLDB は本番環境で頻繁に使用されているように見えるため、私は混乱しています。
特に、上記のページは、JBoss と組み合わせて使用することに対してではなく、HSQLDB を完全に使用することに対して警告しているようです。
JBoss (特に Community JBoss 5.1 にバンドルされているデフォルトのデータソース) で HSQLDB を使用することはまだ推奨されませんか?
*:インメモリモードで使用する予定です。
java - プレーンJDBCを使用してターゲットテーブルの名前と外部キー列の列を取得するにはどうすればよいですか?
ターゲットテーブルと特定のテーブルの特定の列の外部キーの列の両方の名前をフェッチするプレーンJDBCを使用してコードを作成しようとしていますが、コアインターフェイスを通過すると直接見つけることができないようですこれを行う方法。
JDBCを介して外部キーに関するそのような情報を直接取得する方法はありますか、それとも特定のデータベース(この場合はHSQLDB)へのメタデータクエリに頼る必要がありますか?
データベース固有のメタデータクエリを使用する必要がある場合、どのHSQLDB内部メタデータテーブルがその情報を保持しますか?
java - HSQLDB2.0.0-rc8で次のシーケンス値を選択する「正しい」方法
TEST_SEQというシーケンスがあるとすると、次の値を選択する正しい方法は何でしょうか。これは動作しません:
おそらく「FROM」句が必要なためです。HibernateでHSQLDialect.getSequenceNextValString()を見ると、次のようになります。
私の場合、次のような結果になります。
これは2.0.0-rc8では機能しません(これは2.0より前のバージョンでのみ機能すると想定しています-検証されていません)DUALと呼ばれる1行の単純なテーブルを作成するソリューションに出くわしました。この場合、これは機能します(オラクルスタイル):
しかし、hsqldbにはこのテーブルが付属していないため、「最初の起動」時に休止状態にしてこのようなテーブルを生成する方法がわかりません。
シーケンスの次の値を箱から出して取得する方法が必要だと思っていて、それが欠落しているだけです。何か案は ?
sql - HSQLDB 1.8での単一データベーストランザクションとしての条件付き挿入?
「Set」データ構造のような特定のデータベーステーブルを使用しています。つまり、同じ行を複数回挿入することができますが、含まれるインスタンスは1つだけです。主キーは自然キーです。たとえば、次の一連の操作が正常に機能し、オクラホマの行が1つだけになるようにします。
もちろん、同じ値の後続の挿入で主キーが重複しているため、エラーが発生します。これらのエラーがスローされないように、挿入を条件付きにする方法はありますか?つまり、自然キーがまだ存在しない場合にのみ挿入を行いますか?
where句とサブクエリを実行して、行の存在を最初にテストできることはわかっていますが、コストがかかるようです。これは、1つの論理的な「条件付き挿入」操作に対して2つの物理操作です。SQLでこのようなものはありますか?
参考までに、HSQLDB1.8を使用しています