対JDBC対JPA対スプリングデータ


一方のJavaプログラムと反対側のリレーショナルデータベースがあります.あなたがこれらをつなぐとき、何が起こるかについてチェックして、あなたがこれをするのを助けることができるツールの概要を得ましょう.

Javaをデータベースに接続する最初の基本的なソリューションはJDBCです.JDBCは「Javaデータベース接続」を表します.1997年にSun MicrosystemsによってリリースされたJavaの一部です.JDBCでは、データソースとの接続を確立し、クエリを送信してステートメントを更新し、結果を処理できます.

JDBCでは、Javaアプリケーション内で次のことを行うことができます.
  • はデータ源
  • との接続を確立する
  • データソース
  • にクエリと更新文を送信する
  • は、結果
  • を処理します
    JDBCはより良いオプションです.
  • アプリが移行する必要がない単純なデータベースを使用している場合、または
  • アプリケーションが2または2 +テーブルバージョンにオブジェクトマッピングを必要としないデータベーステーブルに格納されるデータを必要とする場合.
  • 要するに、JDBCは簡単なプロセスのためのより良いオプションです.JDBCとの唯一の欠点は、データセットと論理の間のマッピングの多くがSQLと混ざり合っている、とてつもないコードをしばしば持つことができる場所です.それで、それはJPASが便利になるときです.

    これは、コードとデータベーステーブルのオブジェクト間でマップできるようにする仕様です.これは、開発者からSQLを非表示にすることができますし、クラスやオブジェクトに対処するためだけにcrud操作を実行することができます.JDBCを使用しているJPAでは、これらの詳細をJavaアノテーションを使用して指定できます.

    JPA is not a tool or framework. It defines a set concepts that can be implemented by another tool or framework.


    そのツールまたはフレームワークを冬眠することができます.JPAはインターフェイスで、Hibernateは実装です.
  • JDBCとは異なり、Hibernateはデータベース自体に接続し、HQLを使用してクエリを実行し、結果をJavaオブジェクトにマップします.さらに、Hibernate注釈は、オブジェクトとリレーショナルテーブルマッピングのメタデータを提供する強力な方法です.私は、ORM(Object Relational Mapping)の概念を理解するために、「Hibernate注釈」もGoogleに提案します.
  • 最後に、ばねデータJPAはSpring Frameworkの一部である.ばねデータの目標はボイラ板コードを減らすことである.これは、HibernateなどのJPAプロバイダの上部に抽象化の余分な層を追加します.デフォルトでは、SpringデータはHibernateをORMプロバイダーとして使用します.必要に応じて変更できます.スプリングデータを使用してスプリングを使用する場合、スプリングブートで自動的に接続できるようになります.ホスト、パスワード、およびユーザー名だけが順番にデータベースとプログラムの間の接続を確立する必要があります.どのように簡単です、右?

    JpaRepositoryを拡張するインターフェイスを作成するだけで、ボックスのsave ()、update ()、delete ()およびselect ()のようなすべてのCRUDメソッドがあります.さらに、これらのメソッドを使用して独自の操作を作成できます.すべての実装は、春のデータだけであなたのために作られます.
    public interface IUserDAO extends JpaRepository<User, Long> {
        User findByName(String name);
    }
    

    最後の言葉。🏁


    The fastest approach is JDBC since it is the lowest level of java program and relational database. It doesn't have any levels on top of it so if you use it will be fast. However, it just has some complicity and it just adds some a lot of boilerplate code.

    Also you can use a JPA and Hibernate to reduce the amount of boilerplate code and to enable mapping to show the mapping between your java program and database table.

    Finally, Spring Data is the top level and you can use it just to avoid boilerplate code from Hibernate just to hide all the implementations working with database and just to focus on the level of tasks for business instead of thinking how to deal with the database.