重複の可能性:
java.sql.Connectionスレッドは安全ですか?
複数のスレッドが同じjava.sql.Connectionを使用して、データベースにクエリを同時に送信できますか?すべてのスレッドが同時に接続を使用します。
接続がシングルトンクラスから取得された場合でも、上記のケースは可能ですか?
重複の可能性:
java.sql.Connectionスレッドは安全ですか?
複数のスレッドが同じjava.sql.Connectionを使用して、データベースにクエリを同時に送信できますか?すべてのスレッドが同時に接続を使用します。
接続がシングルトンクラスから取得された場合でも、上記のケースは可能ですか?
はい、可能ですが、接続プールを実装することをお勧めします - c3p0 は非常に一般的なオプションです。
いいえ、java.sql.Connection
スレッドセーフではありません。あるスレッドがコマンドを発行し、別のコマンドがロールバックを実行しているとします。以前のコマンドは、完全に有効であってもロールバックされます。または、一方のスレッドがコマンドを実行している間に、もう一方のスレッドが接続を閉じます。
でも!複数の接続を作成しても問題ありません。SQL サーバーは、多数の非同期接続を処理するように設計されています。アプリケーションで車輪を再発明してデータベースアクセスを同期する代わりに、データベース自体で同期メカニズムを使用します。