0

私は持続性が初めてで、「Pro JPA 2」という本を読んでいます。Java と JDBC パックの問題点は

  1. SQL は移植可能ではありません
  2. Java コードと SQL の密結合

JDBC の皮肉なことに、プログラミング インターフェイスは移植可能ですが、SQL 言語は移植可能ではありません。SQL を標準化するための多くの試みにもかかわらず、2 つの主要なデータベース プラットフォームでそのまま実行される複雑な SQL を記述することはまだまれです。SQL ダイアレクトが類似している場合でも、クエリの構造に応じて各データベースのパフォーマンスが異なるため、ほとんどの場合、ベンダー固有のチューニングが必要になります。

私の質問は次のとおりです。

  1. SQL の移植性に関連する問題は依然として重大ですか?
  2. 私が理解しているように、Hibernate、TopLink、およびその他のフレームワークも、メタデータ (注釈) から SQL クエリを作成する必要があります。SQLの移植性に関連する問題をどのように整理していますか?
  3. Java と JDBC の密結合は、開発者が SQL クエリを作成する必要があることを意味します。私はそれを正しく理解していますか?

あなたの応答を前もって感謝します )

4

2 に答える 2

1
  1. はい、問題は SQL とコードの間の密結合にあり、ORM を使用せずにあるデータベースから別のデータベースに移行する必要がある場合、アプリケーション内のすべてのクエリを変更する必要があるため、プロジェクトにとって非常に重要です。

  2. Hibernate、TopLink、およびその他の ORM ソリューションは、Java コードを SQL クエリに変換してデータベースに送信しますが、それらはより標準的で十分にテストされているため、クエリで直接作業する代わりに、コードをクエリに変換する ORM ツールに頼ることができます。複雑さから私たちを抽象化します。そのため、クエリを直接記述するのではなく、ORM ツールを使用することをお勧めします。

  3. はい、Java と JDBC の密結合は、開発者が移植性のない SQL クエリを直接記述しなければならないことを意味し、データベース層が変更された場合は、すべてのクエリを変更する必要があります。代わりに、ORM ソリューションを使用する場合は、XML または構成ファイルを変更するだけで、ORM でサポートされている任意のデータベースに直接移行できます。

于 2013-06-22T09:48:07.393 に答える