Spring DBアクセス技術(2)
JPA
JPAは既存の重複コードだけでなく、基本的なSQLもJPA自身が作成して実行します.
JPAを使用すると、SQLとデータ中心の設計からオブジェクト中心の設計に移行できます.
JPAを使うことで開発生産性を大幅に向上させることができます.
優先パラメータ
build.gradeファイルにJPA関連ライブラリを追加します.
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
jpaライブラリの内部にはjdbc関連ライブラリも含まれているため、jdbcライブラリは削除されます.またgradleを変更する場合は必ず再ロードしてください.
application.JPA設定をpropertiesに追加することもできます.
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=none
show-sqlはjpaで生成されたsqlの出力であり、ddl-autoはテーブルを自動的に生成する機能を提供する.noneを使用する場合は作成しません.createを使用する場合は、エンティティ情報に基づいてテーブルを作成します.エンティティマッピング
JPA会員庫
JPAはEntityManagerによって操作され、EntityManagerは管理エンティティのクラスです.
クラスと変数を次のように設定します.
saveはpersist()を使用してエンティティを格納します.
次に、クエリー機能を持つ方法を示します.
find()の場合、識別子(pk)のみでデータをクエリーできるため、プライマリ・キー以外の値でクエリーするにはJPQLを使用する必要があります.
つまり、JPQLはテーブルではなくオブジェクトを検索するクエリーであり、JPAはJPQLを分析してSQLを生成し、DBでクエリーします.
サービス
スプリングは、このクラスのメソッドを実行するとトランザクションを開始し、メソッドが正常に終了するとトランザクションをコミットします.実行時に異常が発生した場合は、ロールバックします.
JPAによるすべてのデータ変更は、トランザクションで実行する必要があります.
したがって、サービスにトランザクションを追加します.
構成をJPAに変更
図に示すように、エンティティーマネージャを追加し、JpaMemberRepositoryを空に登録します.
テストコードの実行により、正常に動作していることを確認できます.
SpringデータJPA
Spring Data JPAは、SpringでのJPAの使いやすさをサポートするプロジェクトです.
ライブラリ内の実装クラスがなく,インタフェースだけで開発が完了する.
また、CRUDも提供しています.
環境設定はJPAと同じです.
Spring Data JPAメンバーライブラリ
図に示すようにインタフェースを作成します.
Spring Data JPAでは、インプリメンテーションが自動的に生成され、空に登録されます.基本的な共通実装体はいずれも新しい周期を生成するので,一般的に使用できる.
他の非汎用インプリメンテーションを使用する場合は、メソッド名を使用してクエリーを作成できます.
(FindByEmailなどSpringデータJPAは自動的にJPQLを生成します.)
設定
SpringData JPAはSpringBinとして自動的に登録されるので、図のように簡単にできます.
同様に、テストコードの実行によっても良好に動作していることがわかります.
実際にJDbctemplate、jpa、springdatajpaはよく使われるので、さらに勉強する必要があります.
ソース:インフラストラクチャSpring入門-コード学習を使用したSpring Boot、Web MVC、DBアクセス技術
https://www.inflearn.com/course/スプリング-入門-スプリング起動/講座/49598?tab=curriculum
Reference
この問題について(Spring DBアクセス技術(2)), 我々は、より多くの情報をここで見つけました https://velog.io/@kms9887/Spring-스프링-DB-접근-기술2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol