クエリ テキストを保護する必要はありません。クエリで使用されるパラメーターのログ記録に関して懸念がある場合があります。生のパスワードをデータベースに保存する場合、これは問題です。そのため、そもそも生のパスワードを保存しないことをお勧めします。
SQL を Java コードに埋め込む方法について少し詳しく説明します。アプリケーションがデータベースで動作する場合、データベースを呼び出す必要があり、これは SQL ステートメントの実行を意味します。これを回避する唯一の方法は、この作業を別のアプリケーションに委任して、アプリケーションが SQL ではなくカスタム プロトコル/API を使用し、そのアプリケーションが代わりに SQL クエリを実行するようにすることです。
SQL を Java コードとは別に保存する必要があるかもしれませんが、これはセキュリティ上の懸念によるものではなく、主にアプリケーションをより適切に構造化する必要があるためです。SQL を Java コードに埋め込まない主な原動力は、コードの読みやすさ、パフォーマンス、メンテナンス、およびコードの再利用です。
データベースにアクセスするときは、ORM を使用するのが一般的です。この場合、アプリケーションに SQL コードがまったくなく、ORM API を介してデータベースにアクセスすることは珍しくありません。たとえば、休止状態では、クエリは次のようになります
User user = session.createCriteria(User.class)
.add( Restrictions.eq("name", userName) )
.uniqueResult();
また、選択した ORM で直接サポートされていない SQL クエリを実行する必要がある場合でも、SQL テキスト自体は通常、付随する xml ファイルに保存されます。
後者の場合、技術的に SQL は Java コードに埋め込まれていませんが、アプリケーション パッケージの 1 つに存在することに注意してください。