-3

重複の可能性:
java.sql.Connectionスレッドは安全ですか?

複数のスレッドが同じjava.sql.Connectionを使用して、データベースにクエリを同時に送信できますか?すべてのスレッドが同時に接続を使用します。

接続がシングルトンクラスから取得された場合でも、上記のケースは可能ですか?

4

2 に答える 2

2

はい、可能ですが、接続プールを実装することをお勧めします - c3p0 は非常に一般的なオプションです。

于 2012-12-20T08:35:55.673 に答える
1

いいえ、java.sql.Connectionスレッドセーフではありません。あるスレッドがコマンドを発行し、別のコマンドがロールバックを実行しているとします。以前のコマンドは、完全に有効であってもロールバックされます。または、一方のスレッドがコマンドを実行している間に、もう一方のスレッドが接続を閉じます。

でも!複数の接続を作成しても問題ありません。SQL サーバーは、多数の非同期接続を処理するように設計されています。アプリケーションで車輪を再発明してデータベースアクセスを同期する代わりに、データベース自体で同期メカニズムを使用します。

于 2012-12-20T08:37:32.887 に答える