問題タブ [spring-jdbc]
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.
spring - JNDI で取得したデータ ソースを閉じる必要がありますか?
更新: どうやら Tomcat は 7.0.11 以降、DataSource を閉じているようです。そのため、webapp の contextDestroyed では利用できません。参照: https://issues.apache.org/bugzilla/show_bug.cgi?id=25060
やあ、
Spring 3.0 と Java 1.6 を使用しています。
この方法でデータ ソースを取得した場合:
Bean が破棄されると、データ ソースは閉じられます。
次のようなデータ ソースを取得した場合:
contextDestroyed リスナーでデータ ソースを明示的に閉じる必要がありますか?
ありがとう、
ポール
java - Spring Jdbc宣言型トランザクションが作成されましたが、何も実行されていません
SpringベースのWebアプリケーション内で宣言型トランザクション管理を構成しようとしましたが、協力できません。
私には2つの主な問題があります:
- dataSource(アプリケーションに必要)でdefaultAutoCommitをfalseに設定すると、トランザクションが含まれるかどうかに関係なく、すべてのクエリがロールバックされます。
- トランザクションが構成され、プロキシクラスとトランザクションメソッドが作成されますが、トランザクションは使用されていないようです。
最初の問題は、個々のクエリがすべてデータベースでロールバックされるため、かなり複雑です。これには、SELECTステートメントも含まれます。すべてのクエリがデータベースでロールバックされる原因は何ですか?
2番目の問題については、トランザクション管理の構成の概要を以下に示します。
applicationContext.xml
この問題を解決するために私が訪れたすべてのチュートリアルとフォーラムから、私の構成は正しいはずだと思います。しかし、私はaopとspringのトランザクションを完全には理解していないので、重要な何かを見逃している可能性があります。
上記でほのめかしたように、ログをトレースして、サービスクラス用に作成されているプロキシとトランザクションメソッドを確認できます。ただし、実際にアプリケーションを実行してログをトレースすると、DataSourceTransactionManagerを処理するステートメントや、作成、コミット、ロールバックなどのトランザクションが表示されません。
実際には何も実行されていないように見えます。さまざまなチュートリアルを実行し、さまざまな方法を試したため、非常に混乱していますが、常にこの状況に陥ります。
また、DataSourceTransactionManagerからメッセージを受信するようにlog4jプロパティが正しく設定されていることもかなり確信していますが、ログエラーだけではないことを確認するために以下に提供しています。
私のlog4jは、トランザクションをトレースするために次のロガーでセットアップされています。
注:ある時点でDEBUGでトップロガーを実行しました。そこで、サービスプロキシが作成されていることを確認しました。
誰かが何が起こっているのかについて何か洞察を持っていますか?トランザクションが作成されている部分がいくつかあるので、現時点ではかなり行き詰まっていますが、トランザクションが使用されている兆候はまったく見られません。
編集:
JBNizetから要求された追加情報。
私のアプリケーション全体はアノテーション駆動型であるため、サービスBeanは@Serviceでアノテーションが付けられ、名前ベースの自動配線を介してコントローラーに注入されます。
以下は私のサービスクラスの1つの例です(名前は変更されていますが、私のapplicationContext.xmlを反映します)。
ご覧のとおり、私のサービスクラスは、コントローラークラスとdaoクラスの間のプロキシにすぎません。DAOは、私が実際にデータベース接続を処理する場所です。
トランザクションを処理するときは、daoクラスではなく、サービスをトランザクションにすることが好ましい方法であるとどこかで読んだと思います。私が間違っている場合は訂正してください。
ZapDAOクラスの概要を以下に示します。
jdbcTemplateを使用して、接続とクエリを処理します。
postgresql - Spring JDBC - 最後に挿入された ID
Spring JDBC を使用しています。Spring Framework を使用して最後に挿入された ID を取得する簡単な方法はありますか、それとも JDBC トリックを使用する必要がありますか?
以下のようなものを見つけましたが、次のようになります。org.postgresql.util.PSQLException: Returning autogenerated keys is not supported.
java - 同じ構造を持つ複数のテーブルごとに 1 つの DAO
Spring と Oracle DB を使用していますが、同じ列を含む別のテーブルに異なる XML ファイルを格納する必要があるため、これらのテーブルの操作に単一の DAO を使用したいと考えています。私はSpringが初めてなので、このアプローチが可能かどうか、可能であればどうすればよいかを尋ねています。
java - Spring JDBCTemplate コード生成用の Eclipse プラグインはありますか?
データベースのすべてのニーズに Spring JDBCTemplate を使用する予定です。データベーステーブルを取得して自動生成するEclipseプラグインがあるかどうかを知りたかった-
- ドメイン モデル POJO
- DAO クラス
そのようなツールが hibernate (http://www.hibernate.org/subprojects/tools.html) 用に既に存在することは知っています。Spring JDBCTemplate クラスを自動生成するのに役立つ同様のプラグインはありますか?
java - リモートマシンで実行されているSQLServer2005インスタンスへのJDBC接続
SpringWebアプリケーションからリモートマシンで実行されているSQLServer2005インスタンスに接続しようとしています。このWebアプリケーションはTomcatサーバーで実行されています。以前SQLServer2000に接続したときは、正常に機能していました。msbase.jar、mssqlserver.jar、msutil.jarを使用してSQLServer2000に接続しました。接続文字列は
しかし今、SQLServer2005に接続しようとすると。Iamはあらゆる種類の問題を抱えています。いろいろ試してみましたが、役に立たなかった。
SQLServer2005の接続文字列は
2005SQLサーバーに接続する手順を教えてください。
- 必要なすべての瓶は何ですか。
- はいの場合、SQLサーバーのjdbcドライバーを更新する必要がありますか?
- 使用するドライバークラス名。
- 可能であれば、springjdbcと通常のjdbcを使用したサンプルコードも提供してください。
java - spring jdbc テンプレートに複数のテーブルを返すストアド プロシージャ
JdbcTemplate を使用して、Spring DAO クラスからストアド プロシージャを呼び出しています。私の問題は、ストアド プロシージャが複数のテーブルを返すことです。Spring JdbcTemplate を使用して複数のテーブルにアクセスする方法はありますか。
jdbcTemplate.queryForList(myStoredProc, new Object[]{parameters}
iamを使用する
と、結果から最初のテーブルのみが取得されます。
私のデータベースは SQL Server 2005 です。
私の要件に jdbcTemplate 以外の方法はありますか?
oracle - 内部エラー: イメージはコレクション イメージです。Oracle を使用した ADT が必要です
spring-jdbc を使用して、Oracle データベースでストアド関数を呼び出そうとしています。
これは私が呼び出そうとしているストアド関数です:
次はresource_tabの定義です
次はtresourceの定義です
呼び出しコード
最後は、私が受け取っているスタック トレースです。
spring - これらのSpringデバッグメッセージはどういう意味ですか?
スタンドアロンのJavaアプリケーションでSpringIoCを使用しています。アプリケーションが起動すると、起動情報を含むログが作成されます。理解できないメッセージがいくつかあります。それらを理解し、修正する必要がある場合の修正方法を説明してください。また、私は興味があります。これらのメッセージが原因で、アプリケーションの安定性に危険はありますか?
私を怖がらせるメッセージは「Unable」という言葉で始まります。現時点では、アプリケーションは非常にうまく機能しています。
java - 2 つのパラメーターを必要とし、そのうちの 1 つだけがリストに格納されるクエリで batchUpdate を実行するにはどうすればよいですか
Spring-JDBC を使用して、ユーザーの Facebook の友達のリストを MySQL データベースに挿入します。
ユーザーの uid を含む最終的な Long と、彼の友人のリストを含む List があります。
私のクエリは次のとおりです。
SqlParameterSourceUtils を使用してバッチ パラメーターを作成します
そして、次を使用して挿入を実行します。
ここでの問題は、クエリに必要な 2 番目のパラメーターのみがリストに含まれていることです。
friendsList を変更して別の列を追加する必要がありますか、それとも別の方法がありますか?
ありがとう!