ホームページ > Java > &#&チュートリアル > SpringBoot プロジェクトに Hibernate を統合する方法

SpringBoot プロジェクトに Hibernate を統合する方法

WBOY
リリース: 2023-05-18 09:49:23
転載
1704 人が閲覧しました

Spring Boot プロジェクトへの Hibernate の統合

序文

Hibernate は、Java オブジェクトをデータベース テーブルにマップして永続化操作を容易にする、人気のある ORM (オブジェクト リレーショナル マッピング) フレームワークです。 Spring Boot プロジェクトでは、Hibernate を統合すると、データベース操作をより簡単に実行できるようになります。この記事では、Spring Boot プロジェクトに Hibernate を統合する方法と、対応する例を示します。

1.依存関係の導入

pom.xml ファイルに次の依存関係を導入します:

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

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
</dependency>

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-core</artifactId>
</dependency>
ログイン後にコピー

その中で、spring-boot-starter-data-jpa は Spring によって提供されます。 Boot JPA (Java Persistence API) を統合するための開始依存関係として、Hibernate 関連の依存関係がすでに含まれています。 MySQL データベースのドライバーは mysql-connector-java です。 hibernate-core は Hibernate の中核となる依存関係です。

2. データ ソースの構成

application.properties でデータ ソースを構成します:

spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
spring.jpa.hibernate.ddl-auto=create-drop
ログイン後にコピー

ここでは MySQL データベースが使用されており、実際の状況に応じて変更できます。このうち、 spring.jpa.hibernate.ddl-auto 属性は、Hibernate がデータベース テーブルを自動的に生成する方法を指定します。create-drop は、アプリケーションが起動されるたびにテーブルが作成され、アプリケーションの起動時にテーブルが削除されることを意味します。閉まっている。

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

データベース テーブルにマッピングするための単純なエンティティ クラスを作成します:

@Entity
@Table(name = "person")
public class Person {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "name")
    private String name;

    @Column(name = "age")
    private int age;

    // getters and setters
}
ログイン後にコピー

エンティティ クラスで @Entity アノテーションを使用して、これがJPAエンティティクラスです。 @Table 注釈は、エンティティ クラスがマップされるデータベース テーブル名を指定するために使用されます。 @Id アノテーションを使用してエンティティ クラスの主キーを定義し、@GeneratedValue を使用して主キーの生成方法を指定します。 @Column アノテーションは、エンティティ クラス属性がマップされるデータベース列名を指定するために使用されます。

4. リポジトリの作成

データベースにアクセスするための単純なリポジトリを作成します:

@Repository
public interface PersonRepository extends JpaRepository<Person, Long> {
}
ログイン後にコピー

リポジトリで @Repository アノテーションを使用して、それが Spring コンポーネントであることを示します。データベースにアクセスするために使用されます。 PersonRepository は JpaRepository を継承しており、このインターフェイスは、save、findById などの多くの一般的なデータベース操作メソッドを提供します。

5. ビジネス コードを記述する

データベース操作にサービスで PersonRepository を使用する:

@Service
public class PersonService {
public void savePerson(Person person) {
    personRepository.save(person);
}

public List<Person> getPersons() {
    return personRepository.findAll();
}
ログイン後にコピー

@Service アノテーションは、サービスで使用される Spring コンポーネントであることを示すために使用されます。ビジネスロジックの処理。この例では、2 つのメソッドを定義します。savePerson は Person オブジェクトをデータベースに保存するために使用され、getPersons はすべての Person オブジェクトを取得するために使用されます。

6. http リクエストを処理するコントローラーを作成します

HTTP リクエストを処理する単純なコントローラーを作成します:

@RestController
public class PersonController {
    @Autowired
    private PersonService personService;

    @PostMapping("/person")
    public void savePerson(@RequestBody Person person) {
        personService.savePerson(person);
    }

    @GetMapping("/persons")
    public List<Person> getPersons() {
        return personService.getPersons();
    }
}
ログイン後にコピー

コントローラーで @RestController アノテーションを使用します。 Spring コンポーネントであり、HTTP リクエストを処理するために使用されます。この例では、2 つのメソッドを定義します。savePerson は POST リクエストを処理し、データベースに Person オブジェクトを保存するために使用され、getPersons は GET リクエストを処理し、すべての Person オブジェクトを取得するために使用されます。

7. アプリケーションを実行します

これで、アプリケーションを起動し、http://localhost:8080/persons にアクセスして、すべての person オブジェクトを取得できるようになります。新しい Person オブジェクトを追加する必要がある場合は、POST リクエストを使用してデータを http://localhost:8080/person に送信できます。すべてが正常であれば、次の出力が表示されるはずです:

[{"id":1,"name":"Alice","age":20},{"id":2 ,"名前":"ボブ","年齢":30}]

以上がSpringBoot プロジェクトに Hibernate を統合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート