JPAとJDBCの違いは何ですか?


答え 1:

JDBCは、データベースに直接接続してSQLを実行するための標準ツールです。たとえば、select * from TableNameなどです。ユーザーが自分のアプリで処理できるデータセットを返すことができ、更新、削除などの通常の操作をすべて実行できます。 、挿入プロシージャなど。ほとんどのJava DBA(JPAプロバイダーを含む)の背後にある基盤技術の1つです。

従来のJDBCアプリの主な問題の1つは、ユーザーがロジックをSQLに混在させたり、データセットとオブジェクト間のマッピングが大量に発生したりするなど、しばしば安っぽいコードを使用できることです。

JPAは、オブジェクトリレーショナルマッピングの公式ツールです。 JPAは、ユーザーがコード内のオブジェクトとデータベーステーブルをマッピングできるようにする技術です。 JPAは開発者からSQLを「隠す」ことができるため、Javaクラス内で処理するすべてのSQLプロバイダーは、SQLを保存してリモートでロードすることができます。 ほとんどの場合、セッターおよびゲッターのXMLマッピングファイルまたは注釈を使用して、JPAプロバイダーに通知できます。 ユーザーオブジェクトのどのフィールドがDBのどのフィールドにマップされるか。 hibernateは最も人気のあるJPAプロバイダーです。

OpenJPA、toplinkなどを含む他の例

Hibernateおよびその他のJPAの一般的なプロバイダーは、SQLを記述し、JDBCを使用してDBの読み取りと書き込みを行います。

ありがとうございました。

あなたが私の答えが好きなら、それを賛成してください。


答え 2:

uが初心者の場合、両方の違いを理解するのは少し複雑です。 最初にJDBCとHibernateの違いを理解することから始めるべきだと思います。 JDBCがJavaのデータベース接続性の略であるという簡潔な説明として、JDBCとは何かを知っていることを願っています。 JDBCは、dbに接続してクエリを実行するJava APIです。 dbに接続するためのドライバーを提供します。 JDBC APIを使用して、リレーショナルデータベースに格納されている表形式のデータにアクセスできます。 JDBC APIの助けにより、データベースからデータを保存、更新、削除、フェッチすることができます。

では、Hibernateとは何ですか? JDBCとは異なり、Hibernateライブラリを使用する前にインポートする必要がありますが、JDBCはJ2SE自体の一部です。 HibernateはJDBCの開発目的と同じことを行いますが、HibernateはJDBCの高度なレベルであると言えます。 Hibernateは、データベースと対話するためのJavaアプリケーションの開発を簡素化します。これはORMツールであり、Javaオブジェクトをdbテーブルにマッピングします。 Javaクラスは、dbのテーブルを表すことができます。 たとえば、「emp_26」テーブルをHibernateのEmployeeクラスとしてマッピングした場合、empl_26テーブルからすべての従業員を取得する単純なオブジェクト指向クエリを作成します。「from Employee」// in Hibernate「select * from emp_26」// in JDBC。

キャッシュ、関連付けマッピング、継承マッピング、HQL、ページネーションなど、Hibernateが提供する地獄の機能は、JDBCでは利用できません。

JPAに来ると、それは仕様であり、クラスとインターフェースのセットです。 JPAを実装するにはツールが必要で、そのツールはHibernateにすることができます。 JPAを実装することにより、Hibernateが行うことと同じことができますが、JPAの形式で実行できます。 ちなみに、それはHibernateがJPAなしではダンスできないということではなく、Hibernateは独自のダンスも持っています。


答え 3:

JDBCは、DBに直接接続し、それに対してSQLを実行するための標準です。たとえば、SELECT * FROM USERSなどです。アプリで処理できるデータセットを返すことができ、INSERT、DELETE、ストアドプロシージャなどを実行する

従来のJDBCアプリの問題の1つは、多くの場合、データセットとオブジェクト間のマッピングの多くが発生したり、SQLにロジックが混ざり合ったりする安っぽいコードを使用できることです。

JPAは、オブジェクトリレーショナルマッピングの標準です。 これは、コード内のオブジェクトとデータベーステーブルをマッピングできるテクノロジーです。 これにより、開発者からSQLを「隠す」ことができるため、処理するのはJavaクラスだけになり、プロバイダーはそれらを保存して魔法のようにロードすることができます。 ほとんどの場合、XMLマッピングファイルまたはゲッターとセッターの注釈を使用して、オブジェクトのどのフィールドがDBのどのフィールドにマッピングされるかをJPAプロバイダーに伝えることができます。 最も有名なJPAプロバイダーはHibernateであるため、具体的な例を始めるのに適した場所です。

他の例には、OpenJPA、toplinkなどが含まれます。