問題タブ [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 のドライバーを手動で設定する
現在、プラグインとして既存のアプリケーションにプラグインされるプログラムを Java で作成しています。プラグインで JDBI を使用したいと考えており (非常に快適で、慣れているため)、MySQL データベースに接続する必要があります。
通常、ドライバーを含めた後は問題なく動作しますが、既存のアプリケーションには問題があります。明らかに、すでに mysql-driver がありますが、古いものです。
これによりエラーが発生し、クエリをデータベースに送信できなくなります。(エラーは既知です: 古いドライバーには、新しい MySQL バージョンでは使用できない非推奨のメソッドがあります)
jar をシェーディングすると役立つと思いましたが (Maven を使用しています)、それでもエラーが発生します。しかし、私は自分のドライバーの影付きの名前を知っています。JDBI がそれを利用できるように、それをロードする方法を知る必要があるだけです。今、私はこのようなものを持っています:
jdbiに使用する必要があることを伝えるにはどうすればよいmyapp.mysql.jdbc.Driver
ですか?
java - @BindBean パラメータをチェーンできますか?
@BindBean
Bean のプロパティを params - として使用できますmyObj.a
。
bean- のプロパティのプロパティを使用できますmyObj.a.b
か?
java - JDBI で一般的な挿入を行うにはどうすればよいですか?
私はMySQLでJDBIを使用しており、このメソッドがあるGenericDaoインターフェースを持っています
SQLObjects の代わりに流暢なクエリを使用して、JDBI でこのメソッドを実装するにはどうすればよいですか?
これのどちらかを使用することは可能ですか?
また
java - @UseStringTemplate3StatementLocator を使用すると、JDBI で「ORA-00900: 無効な SQL ステートメント」というエラーが発生する
dao.sql.stg 文字列テンプレート ファイルとリンクする DAO インターフェイスを作成しようとしています。クエリは非常に単純で、ID で選択するだけです。
MyDao.groovy:
MyDao.sql.stg:
私のバックエンド データベースは oracle です。Oracle SQL Developer でこのクエリを試してみましたが、問題なく動作しますが、アプリと sql.stg ファイルを使用してクエリを実行すると、次のようになります。
リソースディレクトリをPOMに含めたにもかかわらず、使用するsql.stgファイルが何らかの形で見つからないのではないかと思います。
JDBI で正しい sql.stg 文字列テンプレート ファイルを見つけるにはどうすればよいですか? 私はこのアプリの他の DAO の例に従いましたが、まったく同じ設定を使用しています。
編集: stringtemplate ファイルを使用する代わりに、クエリ文字列を DAO インターフェイスの @SqlQuery 注釈にハードコーディングすると、正常に動作することに注意してください。したがって、問題は間違いなく、dao が stringtemplate ファイルを正しく検出または処理できないことです。完全なスタック トレースは次のとおりです。
java - JDBI ResultSetMapper を使用したオプション フィールドのマッピング
エンティティが持つすべての属性をマップする 1 つの EntityMapper を持つエンティティがあります。
次に、私のDAOインターフェイスで、DBから@SqlQueryを使用してフェッチしています
- 場合によってはすべてのエンティティの属性 --> これで問題ありません
- ただし、特定の属性のみをフェッチする場合もあります --> ここで、マッパーは「SQLException Column xxx not found」で失敗します
この問題の推奨される解決策は何ですか? エンティティごとにマッパーを 1 つだけ持ちたいのですが、常にすべての属性をフェッチするわけではありません。