3

Spring JDBC Templates には名前付きクエリのサポートがないようです。名前付きクエリとは、Java コードで SQL ステートメントを名前で参照し、実際のステートメントを構成ファイルに保持する機能を意味します。

すぐに使用できるサポートがないため、SQL ステートメントを Java コードの外部に保持する最善の方法を研究しています。

代替手段は次のとおりです。

  1. プロパティファイル
  2. xml プロパティ ファイル
  3. spring context xml (依存性注入)

コメント?

4

3 に答える 3

5

Java - 外部ファイルへの SQL ステートメントの保管

クエリが DB に格納されるシステムも 1 つ作成しました。これは、私たちが必要としていたものに対して完全に完璧でしたが、非常に面白いものでした。クエリ ルックアップを行うためのクエリも DB にあり、それが壊れたときに大きな笑いを引き起こしました (聞かないでください)。

于 2011-09-29T12:22:58.257 に答える
3

代替案として検討したすべてのアプローチは機能しますが、ステートメントをJavaクラスから移動すると、設計にレイヤーが追加されますが、これは私には不要です。ステートメントをJavaクラスの外部に保持するオーバーヘッドを考慮してください。

  • 単一のステートメントをフェッチするために、プロパティとXMLがロードされます。
  • Injectは、不要なステートメントをクラスに挿入します。

私があなたの場合、クラスを作成し、ステートメントをstaticfinalにリストします。これにより、透明性が高まり、不要なレイヤーが回避され、将来コードを保守する人にとって柔軟になります。

例:

//This does the job
public class SQLStatements
{
  static public final String GET_NAME="SELECT Name FROM some_table WHERE ID=?";
}
于 2011-09-29T12:18:20.920 に答える