これは技術的な質問ではないかもしれませんが、ここにいる多くの経験豊富な開発者が答えを教えてくれるはずです。
ありがとう
Sajit が言うように、DAO レイヤーは本質的に抽象化です。しかし、私は彼の解釈に同意しません。目標を達成するために何かを抽象化するポイント - 通常は、より複雑なユース ケースの単純化です。
単純にアプリケーション エンティティとデータ エンティティのマッピングを行うだけでなく、より多くの機能を提供する DAO レイヤーを簡単に作成できます。キャッシング、最適化、変換、回復力などを提供できます。したがって、アプリケーションをより適切にスケーリングする機能を提供できない理由はありません。
最終的には用語に依存します。アプリケーションにとってスケーリングとは何を意味するのでしょうか? より速く ???等
DAO (Data Access Object) は、データベース上に抽象化レイヤーを提供するために使用されます。最終的に接続を開き、クエリやストアド プロシージャを実行するメソッドを持つ傾向があります。
スケーラビリティの問題に関しては、DAO で 1 つの主要な点に注意する必要があると思います: 接続管理です。サードパーティのライブラリを使用している場合、おそらくHibernateに沿った何かを使用している場合、これらはライブラリ自体によって管理されるため、接続について心配する必要がほとんどないでしょう。
一方、自分ですべてを実装する場合は、可能な限り最後の瞬間に接続を開き、可能な限り最初の瞬間に解放する必要があります。接続を占有する DAO を使用すると、最終的にアプリケーションのスケーリング方法が制限されます。
最後に、場合によっては、DAO が直接クエリをデータベースに渡します。不要な処理が含まれていないことを確認するために、これらのクエリを作成する方法に注意する必要があります。
Dao は通常、アプリケーション内のデータベースの実装の詳細を抽象化するために使用され、スケーラビリティとは何の関係もありません。
簡単に言えば、すべてが束縛されていると、スケーラブルなアプリケーションを作成することはできません。DAO は、データ アクセス ロジックを処理するのに役立つもう 1 つのレイヤーです。このようにして、動的なSQLなどを見つけて、それを強化および維持できる場所を知ることができます。