問題タブ [jdbi]
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 - JDBI sql api で @SqlQuery アノテーションを出力する方法
デバッグ目的で jdbi sql api によって処理される正確な sql クエリを知りたいです。私のインターフェースクラスは次のとおりです
後で別のクラスで呼び出されますString result = myinterfaceclassobject.returnMeValue("Name",1);
期待される答えが得られないので、実際にSQLクエリに何が行われるかを確認したいと思います。最終的に処理されたクエリを取得する方法はありますか?
java - DropWizard JDBI の使用中にカスタム クレデンシャルを使用する
Dropwizard JDBI フレームワークを使用して Web サービスを開発しています。
ここで、yaml ファイルに db 構成を含める代わりに、「ユーザー指定のパラメーター」を使用したいと思います。つまり、db 構成はエンドポイント URL を介して提供されます。
- dropwizard jdbi を介してカスタム クレデンシャルを使用できますか?
はいの場合、これを参照しながらコードでどのような変更を行う必要がありますか? ->
http://dropwizard.readthedocs.org/en/latest/manual/jdbi.html
通常の流れでは、サービスメソッドは実行メソッドで構成の詳細を取得することを理解しています-
-- 構成クラス
-- サービスクラス
-- そして yaml
しかし、この場合、リソース レベルで構成の詳細を取得する可能性があります...
みたいな -
誰かが私に方向性を教えていただければ幸いです。
java - JDBI でテーブル名を動的にバインドする方法
使ってみた
そして、私が使用したJDBIで
結果は常に一重引用符で囲まれます。
のようなものをパラメータ化する適切な方法はありますかTableName
?
java - 新しいマッパークラスで定義済みのマッパークラスを使用する jdbi sql 流暢なクエリ
クラスの定義済みマッパークラスを、最初のクラスをオブジェクトとして持つ別のクラスの新しいマッパークラスに実装する方法
Class1Mapper
それがすでに定義されていると仮定します。
java - Dropwizard で jdbi を使用してリソース (コントローラー) レベルのトランザクションを強制するにはどうすればよいですか?
Spring@Transactional
では Controller で指定できる Annotation があるので、Controller メソッド内で起こることはすべて 1 つのトランザクションとして扱われます。しかし、dropwizard では を実装することで、DAO レベルでトランザクションを持つことができますTransactional<DAOclass>
。しかし、1 つのリソース メソッドで 2 つの DAO を使用すると、2 つの異なるトランザクションとして扱われます。
2 つの DAO があるとします。
Dao1.java
Dao2.java
ArticleResource.java
上記の例では、dao1 と dao2 に 2 つの異なるトランザクションがあります。しかし、単一のトランザクションの下ですべてが必要なので、リソースレベルでトランザクションの境界を指定する方法はありますか?
java - Guice でジェネリック型を返すプロバイダーを構成する
Provider
JDBI を使用して作成された DAO 用にセットアップしようとしています。JDBI はHandle
オブジェクト (JDBC のラッパーConnection
) を使用し、 を使用して DAO を取得できますhandle.attach(MyDaoType.class)
。DAO クラスごとに個別の実装を作成するよりも、次のようにProvider
する方が理にかなっていると思いました。
しかし、これを Guice で結び付けるのは非常に難しいようです。この回答で提案されているように、最初のコンストラクター引数に注釈を使用してみました。次のようなファクトリを定義しました。@Assisted
FactoryModuleBuilder.implemented
しかし、要点は、プロバイダー クラスを拡張する必要がないということであるため、メソッドを呼び出す方法が明確ではありません。
また、実際に必要なものを返すプロバイダを返すファクトリがあるとは、ちょっとおかしなことにも思えます!
これは Spring DI コンテナーを使用すると非常に簡単に実行できると思うので、Guice を使用するとそれが可能であると信じたいと思います。誰かが私を正しい方向に向けることができますか?
jdbc - 大きなデータを処理するための jdbi jdbc vertica ストリーミング結果セット
膨大な結果セットを取得するために、Jdbi jdbc を介して vertica に接続しようとしています。JDBIのドキュメントに従い、これをdaoに追加しました。
しかし、データをストリーミングするのではなく、データ全体をメモリにロードしているようです
java - JDBI SQL オブジェクト API との 1 対多の関係を作成する方法は?
JDBI を使用して dropwizard で単純な REST アプリケーションを作成しています。次のステップは、1 対多の関係を持つ新しいリソースを別のリソースと統合することです。これまで、別のテーブルからオブジェクトのリストを保持する単一のオブジェクトを取得するメソッドを DAO で作成する方法を理解できませんでした。
POJO 表現は次のようになります。
ユーザー POJO:
アカウント POJO:
DAO は次のようになります。
しかし、メソッドが単一のオブジェクトを戻り値として持つ場合 ( List<Account>ではなくAccount )、Mapper クラスの resultSet の複数の行にアクセスする方法はないようです。私が見つけることができる唯一の解決策はhttps://groups.google.com/d/msg/jdbi/4e4EP-gVwEQ/02CRStgYGtgJで説明されていますが、その解決策は単一のオブジェクトを持つセットのみを返しますが、これはあまり見えませんエレガント。(また、リソース クラスでは適切に使用できません。)
流暢な API でFolder2を使用する方法があるようです。しかし、それを dropwizard と適切に統合する方法がわかりません。dropwizard のドキュメントで推奨されているように、JDBI の SQL オブジェクト API に固執したいと思います。
JDBI で SQL オブジェクト API を使用して 1 対多のマッピングを取得する方法は本当にないのでしょうか? これは、データベースの非常に基本的な使用例であるため、何かが欠けているに違いないと思います。
すべての助けに感謝します、
ティルマン
java - Java で hstore[] 値をバインドする方法
人々の電話番号と住所をデータベース テーブルに保存しようとしています。複数の電話番号と住所をサポートしたいのですが、国によって形式が異なることを期待しています。その柔軟性を可能にし、特定のフィールドによる効率的なクエリを可能にするために、hstore を使用することにしました。現状では、データベースから値を受け取ることができますが、Java から値を挿入する方法が見つかりませんでした。表(簡略化)は次のようになります。
値をバインドするカスタム JDBI Binder を作成しましたが、実行しようとしてもステートメントを取得できません。現在、Binder コード スニペットは次のようになっています。
getHstoreArray 関数は、Java 配列を SQL 配列に変換するヘルパーで、次のようになります。
問題はデータのエンコードにあると思います。たとえば、データの場合 (簡単にするために JSON 表記で)
クエリは次のように展開されます。
PGAdmin の SQL エディターから実行しようとすると、返されるエラーは次のとおりです。
hstore[] の代わりに JSON を使用することを検討しましたが、特定のフィールドによるクエリが遅くなり、精度が低下するため (基本的にテキスト検索)、避けたいと思います。hstore の前に試した別のオプションは UDT の配列ですが、単純なタスクのようには見えない PGobject のパーサーを作成しないと、データベースから読み取ることさえできませんでした。
編集
データベース内のデータを見て、次の方法でエスケープしたとき:
SQL エディターから手動でクエリを実行できますが、Java ではまだうまくいきません。