2017-12-14 11 views
1

スレッドセーフなのですか?静的変数SQLステートメントを使用して、マルチスレッド環境の単一テーブルからデータを取得する。 多くのインスタンスがSQLステートメントに同時にアクセスする可能性があります。SQLステートメントの静的変数を使用してスレッドセーフですか

private static String SELECT_PP_INFO = " SELECT PP_ID,PP_NAME FROM TABLENAME WHERE PP_ID= ? AND PP_BRANCH= ? "; 
+2

この変数を変更するつもりはありますか?もしそうでなければ、それを明白にするために最終的にしてください。 –

+2

'private static final String'の場合は完全に安全です。 –

+0

これはSQL文ではなく、これは文字列であり、安全です。しかし、複数のクエリを使用するとmutiスレッドのリスクは少なく、クエリ文字列は最小の問題です(またはそうではありません)。 –

答えて

5

私はそれをfinalにすることをお勧めしますが、それ以外は問題ありません。文字列は不変であるため、本質的に並行読み取りの場合スレッドセーフです。

https://en.wikipedia.org/wiki/Immutable_object

関連する問題