Hibernate は、Java オブジェクトをデータベース テーブルにマップして永続化操作を容易にする、人気のある ORM (オブジェクト リレーショナル マッピング) フレームワークです。 Spring Boot プロジェクトでは、Hibernate を統合すると、データベース操作をより簡単に実行できるようになります。この記事では、Spring Boot プロジェクトに Hibernate を統合する方法と、対応する例を示します。
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 の中核となる依存関係です。
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 は、アプリケーションが起動されるたびにテーブルが作成され、アプリケーションの起動時にテーブルが削除されることを意味します。閉まっている。
データベース テーブルにマッピングするための単純なエンティティ クラスを作成します:
@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 アノテーションは、エンティティ クラス属性がマップされるデータベース列名を指定するために使用されます。
データベースにアクセスするための単純なリポジトリを作成します:
@Repository public interface PersonRepository extends JpaRepository<Person, Long> { }
リポジトリで @Repository アノテーションを使用して、それが Spring コンポーネントであることを示します。データベースにアクセスするために使用されます。 PersonRepository は JpaRepository を継承しており、このインターフェイスは、save、findById などの多くの一般的なデータベース操作メソッドを提供します。
データベース操作にサービスで 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 オブジェクトを取得するために使用されます。
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 オブジェクトを取得するために使用されます。
これで、アプリケーションを起動し、http://localhost:8080/persons にアクセスして、すべての person オブジェクトを取得できるようになります。新しい Person オブジェクトを追加する必要がある場合は、POST リクエストを使用してデータを http://localhost:8080/person に送信できます。すべてが正常であれば、次の出力が表示されるはずです:
[{"id":1,"name":"Alice","age":20},{"id":2 ,"名前":"ボブ","年齢":30}]
以上がSpringBoot プロジェクトに Hibernate を統合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。