ホームページ >Java >&#&チュートリアル >Spring Boot と JPA を使用して ORM ベースのデータ アクセス レイヤーを構築する

Spring Boot と JPA を使用して ORM ベースのデータ アクセス レイヤーを構築する

WBOY
WBOYオリジナル
2023-06-22 10:20:00730ブラウズ

現代のアプリケーション開発では、データ アクセス層がアプリケーションとデータベース間のブリッジとして重要な役割を果たします。 ORM (オブジェクト リレーショナル マッピング) は、データ アクセス層の開発効率を向上させ、データベース プログラミングを簡素化するための重要なテクノロジとなっています。この記事では、Spring Boot と JPA を使用して ORM ベースのデータ アクセス レイヤーを構築する方法を紹介します。

  1. はじめに

Spring Boot は、Web アプリケーションを迅速に構築するための軽量の Java フレームワークです。自動構成や迅速な開発など、多くの便利な機能を提供します。一方、JPA (Java Persistence API) は、Java オブジェクトをリレーショナル データベース内のテーブルにマップする Java ORM フレームワークです。 Spring Boot と JPA を使用すると、ORM ベースのデータ アクセス層を迅速かつ効率的に構築できます。

  1. 依存関係の構成

Spring Boot には、他のフレームワークを簡単に統合するための多くの依存関係が用意されています。まず、pom.xml ファイルに次の依存関係を追加する必要があります。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

上記の依存関係のうち、「spring-boot-starter-web」は Web アプリケーションの構築に使用されます。 - JPA フレームワークを使用する場合は「data-jpa」、メモリ内データベースには「h2」を使用することで、アプリケーションを迅速に開発してテストできるようになります。

  1. エンティティ クラスの作成

JPA をデータ アクセスに使用し始める前に、データベース テーブルに対応するエンティティ クラスを作成する必要があります。ここでは、「users」というデータベース テーブルにマップされる「User」というエンティティ クラスを作成します。エンティティ クラスのコードは次のとおりです。

@Entity
@Table(name = "users")
public class User {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    private String firstName;
    
    private String lastName;
    
    private String email;
    
    // getters and setters
}

上記のコードでは、「@Entity」アノテーションを使用して Java クラスをエンティティ クラスにマップし、「@Table」アノテーションを使用してエンティティ クラスをマッピングします。データベース内の対応するテーブル名を指定します。さらに、「@Id」アノテーションはエンティティの主キーを識別するために使用され、「@GeneratedValue」アノテーションは主キーの生成戦略を指定します。

  1. データ アクセス レイヤーの作成

これで、データ アクセスに JPA を使用するデータ アクセス レイヤーを作成できます。ここでは、Spring Data JPAの「CrudRepository」インターフェースを継承する「UserRepository」というインターフェースを作成します。以下は「UserRepository」のコードです:

@Repository
public interface UserRepository extends CrudRepository<User, Long> {
    
}

上記のコードでは、「@Repository」アノテーションはデータ アクセス層を Spring コンポーネントとして識別するために使用され、「CrudRepository」インターフェイスはいくつかの基本的な機能を提供します。 CRUD 操作 (エンティティの保存、更新、削除など)。

  1. データ アクセス層の挿入

これで、以前に作成したデータ アクセス層をアプリケーションのサービス層に注入できます。ここでは、「UserRepository」を使用してデータアクセスを実行する「UserService」というクラスを作成します。以下は「UserService」のコードです:

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    public Iterable<User> getUsers() {
        return userRepository.findAll();
    }
    
    public void saveUser(User user) {
        userRepository.save(user);
    }
    
    public void deleteUsers() {
        userRepository.deleteAll();
    }
}

上記のコードでは、「@Service」アノテーションはサービス層を Spring コンポーネントとして識別するために使用され、「@Autowired」アノテーションはデータアクセスのために「UserRepository」を「UserService」に挿入します。さらに、「getUsers」メソッドは「findAll」メソッドを使用してデータベースからすべてのユーザーを取得し、「saveUser」メソッドはユーザーをデータベースに保存し、「deleteUsers」メソッドはすべてのユーザーを削除します。

  1. コントローラー クラスの作成

最後に、サービス層を REST API として公開するコントローラー クラスを作成する必要があります。ここでは、「UserService」を使用して HTTP リクエストを処理する「UserController」というコントローラー クラスを作成します。以下は「UserController」のコードです:

@RestController
@RequestMapping("/users")
public class UserController {
    
    @Autowired
    private UserService userService;

    @GetMapping
    public Iterable<User> getUsers() {
        return userService.getUsers();
    }
    
    @PostMapping
    public void saveUser(@RequestBody User user) {
        userService.saveUser(user);
    }
    
    @DeleteMapping
    public void deleteUsers() {
        userService.deleteUsers();
    }
}

上記のコードでは、コントローラー クラスを Spring MVC コントローラーとして識別するために「@RestController」アノテーションが使用され、「@RequestMapping」アノテーションが使用されます。リクエストをコントロールのデバイスクラスにマッピングします。さらに、「getUsers」メソッドは HTTP GET リクエストを「/users」パスにマップし、「UserService」を使用してすべてのユーザーを取得します。また、「saveUser」メソッドは HTTP POST リクエストを「/users」パスにマップし、ユーザーをデータベースの場合、「deleteUsers」メソッドは HTTP DELETE リクエストを「/users」パスにマップし、データベースからすべてのユーザーを削除します。

  1. 結論

この記事では、Spring Boot と JPA を使用して ORM ベースのデータ アクセス レイヤーを構築する方法を紹介しました。エンティティ クラス、データ アクセス層、サービス層を作成し、それらをコントローラー クラスと統合することで、基本的な CRUD 操作を簡単に実行し、データを REST API として公開できます。 ORM の使用により、データベース プログラミングの方法が変わり、開発効率が向上しました。

以上がSpring Boot と JPA を使用して ORM ベースのデータ アクセス レイヤーを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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