ホームページ  >  記事  >  Java  >  Javaリポジトリ

Javaリポジトリ

WBOY
WBOYオリジナル
2024-08-30 15:40:28542ブラウズ

Java Spring フレームワークでは、JPA ベースのリポジトリが一般的に使用されます。これらのリポジトリはデータベース操作を管理する上で重要であり、Spring Data JPA モジュールの一部です。リポジトリは、JAVA アプリケーションからバックエンドに保存されたデータを保存、更新、抽出するための新しいエレガントな方法を定義します。すべての CRUD (作成、読み取り、更新、削除) 操作は、リポジトリ インターフェイスを使用して実装できます。 JPAはJAVA Persistence API(Application Program Interface)の略称です。名前が示すように、JPA はリレーショナル データベースで Java オブジェクトを永続化するのに役立ちます。これを行うには 2 つの方法があります。

広告 このカテゴリーの人気コース JAVA マスタリー - スペシャライゼーション | 78 コース シリーズ | 15 回の模擬テスト

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

  1. リレーショナル テーブルは、マップ クラスを使用してサブシステムにマップされます。
  2. EntityManager API。

この記事では、CRUD 操作のための構文と JPA リポジトリの使用について説明します。

構文:

必要なライブラリをすべてインポートし、プロジェクトのクラスパス内の Spring、Persistence オブジェクト、および Java EE にリンクしたら、次のステップは、「JpaRepository」インターフェースを拡張してインターフェースを作成することです。これはリポジトリ ライブラリの拡張であり、CrudRepository や PagingAndSortingRepository などの他のリポジトリと、リポジトリの基本機能が含まれています。

注: JPA アプリケーションを使用するには、プロジェクトに POM.XML が存在する必要があります。

構造:

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import net.guides.springboot.jparepository.model.Employee;
@Repository
public interface repositoryname extends JpaRepository<Parameter 1 column name, parameter 2 data type>
{
}
//Invocation of the interface created above.
private repositoryname RepositoryName;
@Override
//Different functions from JPA library to be used for enabling transactions with databases.
public void run(String…... arguments) throws Exception {
RepositoryName.save(new TableName("Data1", "Data2", "Data3"));
RepositoryName.save(new TableName("Data1", "Data2", "Data3"));
RepositoryName.save(new TableName("Data1", "Data2", "Data3"));
RepositoryName.save(new TableName("Data1", "Data2", "Data3"));
logger.info("number of elements in table now: {}", RepositoryName.count());

JPA リポジトリはどのように機能しますか?

これらの実装は、Java を使用して開発された Web アプリケーションまたはデスクトップ アプリケーションで永続性を有効にするために重要です。これらのインターフェイスを機能させるには、すべての依存ライブラリをクラスパスにロードする必要があります。 インターフェイスが作成されると、「save()」、「count()」、「info()」、「findAll()」、「sort()」などの関数を使用して、データ クエリまたは必要なデータ クエリを実行します。データ操作。 Java アプリケーションを介して下のテーブルの値を挿入、更新、または削除できるようにデータベースをセットアップする必要があります。リポジトリを使用すると、安全なトランザクションとともにデータベースのデータを簡単に処理できるようになります。

Java リポジトリの例

JPA リポジトリの実装は、初心者にとって複雑な時間のかかるプロジェクトです。すべてのリンクされたライブラリ、JAR、依存関係、サーバーのセットアップ、およびデータベースのセットアップが前提条件です。

ファイル: pom.xml

コード: これは https://start.spring.io からダウンロードできます。システムおよびアプリケーションの要件に応じて値を選択した後、ファイルを生成してダウンロードできます。

注: 「user」という名前のテーブルを持つデータベースが、「Id」と「Name」の 2 つの列を持つ H2 データベースにすでに存在していると仮定します。 「Id」はシステムによって自動的に生成される主キーです。

ファイル: UserControl.java

コード:

package test.controller;
import test.model.User
import test.repository.UserJpaRespository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/users")
public class UsersControl {
@Autowired
private UserJpaRespository userJpaRespository;
@GetMapping(value = "/all")
public List<User> findAll() {
return userJpaRespository.findAll();
}
@PostMapping(value = "/load")
public User load(@RequestBody final User users) {
userJpaRespository.save(users);
return userJpaRespository.findByName(users.getName());
}
}

ファイル: User.java

コード:

package test.model
import test.controller;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
@Entity
public class User {
private Long id;
private String name;
@Id
@GeneratedValue
public Long getId() {
return id;}
public void setId(Long id) {
this.id = id;}
public String getName() {
return name;}
public void setName(String name) {
this.name = name;}
}

ファイル: UserJPARepository.java

コード:

package test.repository;
import test.controller;
import package.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
@Component
public interface UserJpaRespository extends JpaRepository<User, Long>{
}

ファイル:Implementation.java

コード:

package test.implementation;
import static org.hamcrest.CoreMatchers.is;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import java.util.ArrayList;
import java.util.List;
import test.controller;
import org.junit.Before;
import org.junit.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import com.fasterxml.jackson.databind.ObjectMapper;
import test.model.user;
import com.fasterxml.jackson.databind.ObjectMapper;
import test.repository.UserJpaRespository;
@RunWith(SpringRunner.class)
public class Implementation {
private User user;
@MockBean
private UserJpaRespository userJpaRespository;
@Before
public void setUp()
{
user = new User();
user.setId(1l);
user.setName("Virat");
}
}

出力:

Javaリポジトリ

ここで値がデータベースに挿入されます。

説明

最初のファイル「UserControl」には、「@GetMapping()」や「@PostMapping」などの JPA 関数を使用した値の抽出または保存に関する詳細が含まれており、その機能をサポートするにはいくつかの基本ファイルが必要です。これらのサポート ファイルは、User.java および UserJPARepository.java.

です。

ファイル「User.java」は、Java オブジェクトの形式でデータベースの構造を維持し、Java 永続オブジェクトを使用してデータベースにアクセスできるようにします。プロジェクトの作業を開始するには、ステップ 1 で提供されたソース コードを使用して「pom.xml」ファイルを生成する必要があります。提供された出力では、「pom.xml」ファイルはプロジェクトに必要なすべての依存関係を設定します。 。依存関係には、「Spring Framework」関連データと永続オブジェクト関連データが含まれます。 UserJPARepository.java ファイルは、組み込みライブラリ JpaRepository.

を拡張することにより、JPA リポジトリの開始を提供します。

結論

JPA リポジトリは、JAVA 言語でクエリを作成するための汎用プラットフォームを提供するだけでなく、その下のどのデータベースでも使用できるため、非常に便利です。ライブラリによってバックアップされたタスクを実行するエレガントな関数を提供することで、コード行の数を削減します。これにより、「定型コード」の使用が減り、実行の見た目と速度が向上します。

以上がJavaリポジトリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Java の範囲次の記事:Java の範囲