問題タブ [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でインクエリを行うには?
jDBI でこのようなものを実行するにはどうすればよいですか?
テーブル:foo(id int,name varchar)
myBatis の @SelectProvider に似ています。
同様の質問が寄せられています JDBI の Sql オブジェクト API を使用して実行時に動的 SQL クエリを作成するにはどうすればよいですか? 、しかし、どういうわけか答えは私には明らかではありません。
java - X 日後にデータベースからアイテムを削除する
Java スレッドを作成しようとしています。このスレッドは、MySQL データベースから 7 日より古いすべてのレコードを削除する必要があります。
私のテーブルには、次のような日付を含む列があります2013-10-28 17:00:00
。
これを行うには、JDBI ライブラリを使用したいと考えています。そして、ここでの私の質問と、私が書かなければならないクエリの例を教えてください。
私はそれが次のように見えるべきだと思います:
java - 日付フィールドが正しい形式で値を提供しない
List<Map<String, Object>>
値では、データベースから値を取得しています。データベース側では、defaultMapper を使用して値をマップしました。今、値を取得しているとき、フィールドの 1 つの日付型だけが上記の値に正しい結果を与えていません。日付は json で次の形式で送信されます: "update_date": 1319529055000
defaultMapperを使用してこの日付フィールドを正しくマップする方法を教えてもらえますか?
java - JDBI / IDBI / Dropwizard でのトランザクションの使用 -- ロールバックの問題
トランザクションを IDBI で動作させるのに苦労しています。私たちは dropwizard フレームワークを使用しており、単純な挿入、更新、選択、および削除はうまくいきましたが、今ではトランザクションを正しく機能させることができないようです。これが私が試していることです
そして、これが私の JustinTest2 クラスです
私も writeJustin を次のように実装しようとしました:
これらの方法のそれぞれで、挿入された行は、ハンドルを介して直接試行するか、inTransaction を使用するかに関係なく、ロールバック後に常にそこにあります (私の理解では、例外が発生した場合はトランザクションをコミットしないでください)。コールバック内でスローされます)誰が私が間違っているのか知っていますか?
java - JDBI オブジェクトクエリ
私は以前に Java 永続化のために JDBI を使用したことがありますが、それは常にオブジェクト API ではなく流暢な API でした。Object API を試してみます。
私は非常に単純なDAOオブジェクトを持っています:
mysqlでクエリをテストしましたが、正常に動作しますが、単体テストで実行しています:
例外があります:
java.lang.IllegalStateException: メソッド com.hrweb.dao.PersonDAO#insertPerson は、値を返す必要があるかのように注釈が付けられていますが、メソッドは無効です。
ここで何が間違っていますか?
java - jdbiFactory DAO を Dropwizard コマンドにどのように挿入しますか?
Dropwizardを使い始めて、データベースを使用する必要があるコマンドを作成しようとしています。なぜ私がそうしたいのか疑問に思っている人がいれば、正当な理由を提供できますが、とにかくこれは私の質問のポイントではありません. それは、Dropwizard での依存関係の逆転とサービスの初期化と実行フェーズに関するものです。
Dropwizard は、DbiFactory を使用して DBI インスタンスを構築することを推奨していますが、インスタンスを取得するには、Environment
インスタンスおよび/またはデータベース構成が必要です。
ご覧のとおり、サービスとその環境の構成はそのrun()
メソッドにありますが、そのメソッドのサービスのブートストラップにコマンドを追加する必要がありますinitialize()
。
これまでのところ、 Commands でConfiguredCommandDBI
を拡張し、メソッド内にインスタンスを作成することでこれを実現できましたが、依存関係を 内に作成するのではなく、オブジェクトに注入する必要があるrun()
ため、これは悪い設計です。
コンストラクターを介してコマンドの DAO またはその他の依存関係を注入することをおEnvironment
勧めしますが、作成してブートストラップに追加する必要がある場合、サービスの初期化で構成にアクセスできないため、これは現在のところ不可能に思えます。
これを達成する方法を知っている人はいますか?
java - java.lang.NoClassDefFoundError: org/skife/jdbi/v2/DBI
JDBI を使用して自分のコンピューターでローカルにプロジェクトを作成しましたが、問題なくデータベースと連携します。
現在、Tomcat サーバーで同じプロジェクトを使用しています。javac -cp "lib/*" cs5530/*.java
lib には、jdbi-2.49.jar などの依存している外部 jar が含まれている場所を使用して、コードをコンパイルしています。
このコードは、新しい DBI を作成する場所です。
それは私のクラスコンストラクターで呼び出されました:
これは私が得るエラーです:
では、必要なクラスを確認して正常にコンパイルし、実行時に中断するのはなぜですか?どうすればこれを修正できますか?
ありがとう。
java - JDBI、マップの代わりにカスタマイズされたオブジェクト(コンストラクター)にSQLクエリでデータを取得します
したがって、JDBI を使用してデータベースからクエリを実行すると、それがMap<String, Object>
型に取り込まれます。
ではなく、カスタマイズしたオブジェクト (コンストラクター) として取得したいMap<String, Object>
。
代わりに使用したい:
classcustomizedObject
は、すべての列プロパティを含むオブジェクトです。
これを行う方法はありますか?関連するドキュメントをいくつか見つけましたが、実装を本当に理解できません。
java - Mysql は、影響を受ける行に対して常に 1 を返します
JDBI/JDBC/Mysql を使用する Java アプリケーションがあります。
いくつかの更新ステートメントをトランザクションとして実行しようとしています。つまり、autoCommit(false) を設定しています。ステートメントを実行すると、JDBI は影響を受ける行数を常に 1 として返します。
これがコードスニペットです。
私が実行しているSQL挿入は次のタイプです
mysql クライアントで同じクエリを実行すると、影響を受ける行が 0 と表示されます。