問題タブ [jdbctemplate]

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 投票する
1 に答える
11023 参照

spring - Spring JdbcTemplate ConnectionPooling 構成

私は、Spring MVC アプリケーションに取り組んでおり、最近、データベース コードを改良することにしました。非常に伝統的な JDBC コードを使用する前は、ボイラープレート コードのために非常に「古い学校」であると言われていました。Spring でJdbcTemplateを使用するように移行しています。

applicationContext.xmlファイルで以下に示すような Bean を構成しました。

すべてが機能していることを確認するためだけにテストを実行しました。

私の質問は、次のパッケージを使用するCommons DBCPパッケージを使用していることを認識しています。

繰り返しますが、私はこれに非常に慣れていないので、何かを誤って参照したり、何かを間違って説明したりしている場合はお詫び申し上げます.

ほとんどのチュートリアルで言われていることに従い、jdbcTemplate を指定して dataSource Bean を注入しましたが、これは実際には私の質問には当てはまりません。

私が本当に知りたいのは、この構成で ConnectionPooling を使用していますか?

もしそうなら、それは舞台裏で行われていますか、それともどこかで行うように指定する必要がありますか?

Hereのドキュメントを見たところ、次のことがわかりましたが、正確に解釈する方法がわかりません。

「Apache 製品内およびその他の場所の両方で、すでにいくつかのデータベース接続プールが利用可能です。この Commons パッケージは、ASF ライセンスの下で効率的で機能豊富なパッケージを作成および維持するために必要な作業を調整する機会を提供します。commons-dbcp パッケージは、 commons-pool パッケージのコードで、それが利用する基礎となるオブジェクト プール メカニズムを提供します。」

構成ページも見ました

このページに基づいて、私は ConnectionPooling を実行できると思いますが、dataSource Bean で追加のパラメーターを指定する必要があるかもしれません。

誰かが私の質問に答えてくれるか、正しい方向に向けてくれますか?

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

database - JdbcDaoSupport (Spring) から準備済み SQL ステートメントを取得する方法

JdbcDaoSupport (Spring) アプローチを使用して、DB からデータにアクセスします。

ロギング用に準備された SQL ステートメントを取得したいと考えています。それを取得する方法はありますか?

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

sql - テーブルへの SQL 行の挿入 + 1 つのステートメント内のリンク テーブルへのキー (多対多の関係)

ねえ、私は ORM に慣れているので、SQL の経験がほとんどありません。別のテーブルと多対多の関係にあるテーブルに行を挿入する最良の方法を知りたいです.1つのステートメント内で、特定のリンクテーブルに2つの外部キーの行を挿入して保存しますデータの整合性。

誰かが spring jdbcTemplate を使用している場合、このタスクがサポートされているかどうかも知りたいです。前もって感謝します

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

java - JdbcTemplateを使用したページクエリ

私は現在、古いデータベースから新しいデータベースにデータを移行するための移行プロジェクトに取り組んでいます(このためにJavaアプリケーションを使用する理由を尋ねないでください。お客様が必要としているものです)。

私が今更新しているいくつかの初期のコードがありました。私が変更していることの1つは、JdbcTemplateそこにあったボイラープレートコードではなく、Springのコードを使用することです。

JdbcTemplate残念ながら、古いコードに類似したページングクエリを実行する方法はまだ見つかりませんでした。

プレーンJDBCコードで作成されgetConnection()たオブジェクトを返すだけです(またはフレームワーク実装の一部ではありません)。ConnectionSessionFactory

次に、結果セットをループして、行を1つずつマッピングします。で同じ機能を実現する簡単な方法があるかどうか誰かが知っていJdbcTemplateますか?

TIA

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

spring - 多数のレコードを挿入するためのSpringJDBCTemplateとプレーンJDBC

複数のテーブルに200万のレコードを挿入する必要があります。現在、CSVファイルに書き込み、db2インポートを使用してデータベースにロードしています。

このロジックをある種のJDBCに変更したかったのです。複数のオプションを検討していると、SpringJDBCテンプレートとプレーンJDBCと混同されます。

100万個のレコードを10個のテーブルに挿入したいとしましょう。各テーブルには10万個あり、これらはすべて単純なJDBCステートメントです(実行時にどのテーブルを処理しているかわからないため、プリペアドステートメントではありません)。

どのシステムを選択しても、ピークリクエストに対して最大1500万レコードの挿入を処理する必要があります。

どのフレームワークが優れていますか?

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

java - Spring JDBC がトランザクションをランダムにロールバックするように見える

Web アプリケーションのテスト中にデータベースの一貫性をチェックしていたところ、奇妙な現象が発生しました。

特定の時間の間にすべてのテーブルに Id のギャップがあります。つまり、114 から 130 までのすべての ID がなくなっており、その間に約 20 分の間隔があります。

詳しく説明すると、ロールバックされたトランザクションのように見えます。行の記録はなく、トリガーも実行されておらず、ログも記録されていません。

私のアプリケーションにはテーブルからデータを削除できるものは何もないので、Spring がコミットされずに残されていた (複数のデータベース要求の) 大規模なトランザクションをロールバックしたと信じるしかありません。

自動コミット オプションがオンになっており、サーバーはこの期間に再起動されませんでした。

このようなことが以前に起こったことを聞いたことがありますか?どんな助けや提案も大歓迎です...

ありがとう。


編集:

Tomcat ログを見ると、サーバーが適切なタイミングで再起動を強制したようです。これにより、JDBC はこのようなトランザクションをロールバックしますか?

サーバーが理由もなく再起動したようです... これは Tomcat または JDBC のバグですか?

0 投票する
5 に答える
38338 参照

java - JDBCTemplates で SELECT IN 句を使用するには?

これは JDBCTemplates の初めての経験であり、次のようなクエリを使用する必要がある場合に遭遇しました。

それ、どうやったら出来るの?リスト/配列の値を渡そうとしましたが、うまくいかず、例外が発生しました。私の現在のコードは次のようになります。

Spring Documentationは、必要な数の「?」を生成する以外にこれを行う方法はないと述べています。パラメーター リストのサイズに合わせてプレースホルダーを配置します。回避策はありますか?

0 投票する
5 に答える
87767 参照

java - JPA vs Spring JdbcTemplate

新しいプロジェクトの場合、JPA は常にリレーショナル データを処理するための推奨ツールですか、それとも Spring JdbcTemplate がより良い選択であるシナリオはありますか? 回答で考慮すべきいくつかの要素:

  • 新しいデータベース スキーマと既存のスキーマおよびテーブル
  • 開発者の専門知識のレベル
  • データ キャッシング レイヤとの統合が容易
  • パフォーマンス
  • 考慮すべきその他の関連要因はありますか?
0 投票する
1 に答える
790 参照

tsql - JDBCから呼び出された場合、BCPを使用してテーブルデータをファイルにダンプできません

このようにテーブルデータをテキストファイルにダンプするプロシージャを作成しました(関連する変数が宣言されていると仮定します)。

この手順は、SQL Server内から実行した場合は正常に機能しますが、JavaのJDBCから呼び出された場合は機能しません。

アクティビティモニターを見ると、クエリ"SELECT * FROM ##OutputData"を実行しているトランザクションが、プロシージャを実行しているトランザクションによってブロックされていることがわかります。プロセスを効果的にデッドロックします。

私はコードをいじってみましたが、なぜこれが起こるのかまったくわかりません。どこかに欠けているものはありますか?

助けてくれてありがとう...

編集:Quartzへの参照を代わりにJDBCに変更しました。これは、おそらくより関連性が高いためです。

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

spring - Seam ベースのアプリの Spring JDBCTemplate

手動の SQL が必要な場合 (事前に作成されたクエリを使用する JDBC API)、Seam ベースのアプリケーションで最善のアプローチは何ですか?

Seam Documentationでは、Spring ブリッジを使用して Spring JDBCTemplate を注入することは、セットアップが最も複雑であるが、開発が最も容易であると定義されています。

それに同意しますか ?