問題タブ [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.

0 投票する
3 に答える
6805 参照

java - JDBI sql api で @SqlQuery アノテーションを出力する方法

デバッグ目的で jdbi sql api によって処理される正確な sql クエリを知りたいです。私のインターフェースクラスは次のとおりです

後で別のクラスで呼び出されますString result = myinterfaceclassobject.returnMeValue("Name",1);

期待される答えが得られないので、実際にSQLクエリに何が行われるかを確認したいと思います。最終的に処理されたクエリを取得する方法はありますか?

0 投票する
2 に答える
1913 参照

java - DropWizard JDBI の使用中にカスタム クレデンシャルを使用する

Dropwizard JDBI フレームワークを使用して Web サービスを開発しています。

ここで、yaml ファイルに db 構成を含める代わりに、「ユーザー指定のパラメーター」を使用したいと思います。つまり、db 構成はエンドポイント URL を介して提供されます。

  • dropwizard jdbi を介してカスタム クレデンシャルを使用できますか?

はいの場合、これを参照しながらコードでどのような変更を行う必要がありますか? ->

http://dropwizard.readthedocs.org/en/latest/manual/jdbi.html

通常の流れでは、サービスメソッドは実行メソッドで構成の詳細を取得することを理解しています-

-- 構成クラス

-- サービスクラス

-- そして yaml


しかし、この場合、リソース レベルで構成の詳細を取得する可能性があります...

みたいな -

誰かが私に方向性を教えていただければ幸いです。

0 投票する
2 に答える
4586 参照

java - JDBI でテーブル名を動的にバインドする方法

使ってみた

そして、私が使用したJDBIで

結果は常に一重引用符で囲まれます。

のようなものをパラメータ化する適切な方法はありますかTableName?

0 投票する
1 に答える
260 参照

java - 新しいマッパークラスで定義済みのマッパークラスを使用する jdbi sql 流暢なクエリ

クラスの定義済みマッパークラスを、最初のクラスをオブジェクトとして持つ別のクラスの新しいマッパークラスに実装する方法

Class1Mapperそれがすでに定義されていると仮定します。

0 投票する
1 に答える
2001 参照

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 つの異なるトランザクションがあります。しかし、単一のトランザクションの下ですべてが必要なので、リソースレベルでトランザクションの境界を指定する方法はありますか?

0 投票する
2 に答える
3086 参照

java - Guice でジェネリック型を返すプロバイダーを構成する

ProviderJDBI を使用して作成された DAO 用にセットアップしようとしています。JDBI はHandleオブジェクト (JDBC のラッパーConnection) を使用し、 を使用して DAO を取得できますhandle.attach(MyDaoType.class)。DAO クラスごとに個別の実装を作成するよりも、次のようにProviderする方が理にかなっていると思いました。

しかし、これを Guice で結び付けるのは非常に難しいようです。この回答で提案されているように、最初のコンストラクター引数に注釈を使用してみまし。次のようなファクトリを定義しました。@Assisted

FactoryModuleBuilder.implementedしかし、要点は、プロバイダー クラスを拡張する必要がないということであるため、メソッドを呼び出す方法が明確ではありません。

また、実際に必要なものを返すプロバイダを返すファクトリがあるとは、ちょっとおかしなことにも思えます!

これは Spring DI コンテナーを使用すると非常に簡単に実行できると思うので、Guice を使用するとそれが可能であると信じたいと思います。誰かが私を正しい方向に向けることができますか?

0 投票する
1 に答える
1274 参照

jdbc - 大きなデータを処理するための jdbi jdbc vertica ストリーミング結果セット

膨大な結果セットを取得するために、Jdbi jdbc を介して vertica に接続しようとしています。JDBIのドキュメントに従い、これをdaoに追加しました。

しかし、データをストリーミングするのではなく、データ全体をメモリにロードしているようです

ここに画像の説明を入力

0 投票する
4 に答える
19345 参照

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 対多のマッピングを取得する方法は本当にないのでしょうか? これは、データベースの非常に基本的な使用例であるため、何かが欠けているに違いないと思います。

すべての助けに感謝します、
  ティルマン

0 投票する
1 に答える
1173 参照

java - Java で hstore[] 値をバインドする方法

人々の電話番号と住所をデータベース テーブルに保存しようとしています。複数の電話番号と住所をサポートしたいのですが、国によって形式が異なることを期待しています。その柔軟性を可能にし、特定のフィールドによる効率的なクエリを可能にするために、hstore を使用することにしました。現状では、データベースから値を受け取ることができますが、Java から値を挿入する方法が見つかりませんでした。表(簡略化)は次のようになります。

値をバインドするカスタム JDBI Binder を作成しましたが、実行しようとしてもステートメントを取得できません。現在、Binder コード スニペットは次のようになっています。

getHstoreArray 関数は、Java 配列を SQL 配列に変換するヘルパーで、次のようになります。

問題はデータのエンコードにあると思います。たとえば、データの場合 (簡単にするために JSON 表記で)

クエリは次のように展開されます。

PGAdmin の SQL エディターから実行しようとすると、返されるエラーは次のとおりです。

hstore[] の代わりに JSON を使用することを検討しましたが、特定のフィールドによるクエリが遅くなり、精度が低下するため (基本的にテキスト検索)、避けたいと思います。hstore の前に試した別のオプションは UDT の配列ですが、単純なタスクのようには見えない PGobject のパーサーを作成しないと、データベースから読み取ることさえできませんでした。


編集

データベース内のデータを見て、次の方法でエスケープしたとき:

SQL エディターから手動でクエリを実行できますが、Java ではまだうまくいきません。