JPA勉强スタート!


JPAが現れた原因


オブジェクトをJavaコレクションに格納するようにDBに格納できますか?JPAへの苦悩
出てくる過程:EJB-図元彬(Java標準)-->高保真(オープンソース)-->JPA(Java標準)
使用理由:SQLを中心とした開発において、対象を中心とした開発、生産性、メンテナンス、パターン不一致の解決、パフォーマンス、データアクセスの抽象化、ベンダーの独立性

JPAとは?


Java Persistence APIはJavaのORM技術標準である
JPAはインタフェースの集合であり,JPA 2.1規格を実装する3つの実装はHibernate,EclipseLink,DataNucleusである.

ORM?


オブジェクト-リレーショナル・マッピング(Object Relational Mapping)オブジェクト別、リレーショナル・データベース別
ORMフレームワークは両方を中間にマッピングします

JPAの行為



->JPA JavaアプリケーションとJDBCの間で動作

ちょぞう



朝礼



JPAの長所


1.生産性


簡単に言えば、
保存:jpa.persist(member)
クエリー:Membermember=jpa.find(memberId)
修正:member.setName(「変更する名前」)
削除:jpa.remove(member)

2.メンテナンス


以前はフィールド変更時に使用したすべてのSQLを変更する必要がありましたが、JPAを使用するときにフィールドを追加するだけです.SQLはJPAで処理

追加


遅延ロード&即時ロード->JPAの重要な部分で、実際に接触することが多い!自分の都合で使う必要があります!
  • 遅延ロード:実際にオブジェクトを使用するときに
  • をロードする.
    Member member = memberDAO.find(memberId); //SELECT * FROM MEMBER
    Team team = member.getTeam();
    String teamName = team.getName(); //SELECT * FROM TEAM
    ->上記のコードからメンバーオブジェクトを返す場合は、メンバーのみに対してクエリーを実行し、チームオブジェクト値にアクセスしたときにチームに対してクエリーを実行します
    ->2回のクエリが必要
  • 今すぐロード:JOIN SQLを使用して関連オブジェクト
  • に一度に問い合わせる.
    Member member = memberDAO.find(memberId); //SELECT * FROM M.*, T.* FROM MEMBER JOIN TEAM . . .
    Team team = member.getTeam();
    String teamName = team.getName(); 
    ->アプリケーションでメンバーを検索するときにチームと一緒に使用する時間がほとんどの場合、JOINで2つのオブジェクトを1回のクエリーとしてインポートすることは非常に有効です
    ->JPAで提供されるオプションの使用
    でもJPAだけが知っているとうまく開発できない!オブジェクトとリレーショナル・データベースを理解します.覚えてろ!