ホームページ  >  記事  >  Java  >  SpringBoot で JPA をデータ永続化フレームワークとして使用する方法

SpringBoot で JPA をデータ永続化フレームワークとして使用する方法

WBOY
WBOY転載
2023-05-17 18:13:40879ブラウズ

JPA は Java Persistence API の略称です。中国語名は Java Persistence Layer API です。これは、JDK 5.0 アノテーションまたは XML 記述オブジェクトとリレーショナル テーブル間のマッピング関係であり、実行時にエンティティ オブジェクトをデータベースに永続化します。

1. 依存関係の紹介

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

<!-- mysql 驱动 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

<!-- lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

<!-- jpa持久层 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

2. データベース接続構成

server:
  port: 8080

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/jpa-demo?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useSSL=true&characterEncoding=UTF-8
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456
  jpa:
    hibernate:
      # 自动创建表
      ddl-auto: update

ddl-auto には合計 5 つのオプション値があります

  • none: 何もしません

  • create: Hibernate がロードされるたびに、最後に生成されたテーブルが削除され、その後、モデル クラスに基づいて新しいテーブルが生成されます。これは、変更がない場合でも実行され、データベース テーブル データが失われる重要な理由です。

  • create-drop: テーブルは Hibernate がロードされるたびにモデル クラスに基づいて生成されますが、テーブルは sessionFactory が閉じられるとすぐに自動的に削除されます。

  • update: 最も一般的に使用される属性。hibernate が初めてロードされるとき、テーブル構造はモデル クラスに基づいて自動的に確立されます (データベースが最初に確立されている場合)。 . Hibernate が後でロードされるとき、それはモデル クラスに基づきます. クラスはテーブル構造を自動的に更新します. テーブル構造が変更されてもテーブル内の行がまだ存在する場合でも、以前の行は削除されません。サーバーにデプロイされると、テーブル構造はすぐには確立されず、アプリケーションが初めて実行されるまで待機することに注意してください。

  • validate: Hibernate がロードされるたびに、作成されたデータベース テーブル構造が検証され、データベース内のテーブルとのみ比較され、新しいテーブルは作成されません。値が挿入されます。

3. データ オブジェクト (DO)

import lombok.Data;

import javax.persistence.*;

@Table(name = "sys_user")
@Entity
@Data
public class SysUserDO {

    /**
     * 主键-自增
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(columnDefinition = "varchar(12) comment &#39;用户名称&#39;")
    private String name;

    @Column(columnDefinition = "varchar(50) comment &#39;邮箱&#39;")
    private String email;
}
  • @Id、この属性が主キー フィールドであることを示します

  • @GeneratedValue(strategy = GenerationType.IDENTITY) は、主キーの自動インクリメント メソッド

  • @Column を使用して、データベース フィールドの属性を指定します。設定できます。データ型、長さ、コメント、その他の情報、アノテーションを記述することもでき、jpa は自動的に

4. 永続オブジェクト

import com.biz.jpa.entity.SysUserDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface SysUserRepository extends JpaRepository<SysUserDO, Long> {
}

@Repository を識別します。これがデータ アクセス層であることを示します

5. ビジネス層

import com.biz.jpa.dao.SysUserRepository;
import com.biz.jpa.entity.SysUserDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class SysUserService {

    @Autowired
    private SysUserRepository sysUserRepository;

    public SysUserDO saveUser() {
        SysUserDO sysUser = new SysUserDO();
        sysUser.setName("Asurplus");
        sysUser.setEmail("123456@qq.com");
        sysUserRepository.save(sysUser);
        return sysUser;
    }
}

sys_user テーブルにデータを挿入します。主キーは自動的にインクリメントされるため、主キー。挿入が成功すると、自動インクリメントされた主キーがオブジェクト

6に自動的に書き戻されます。Test

import com.biz.jpa.entity.SysUserDO;
import com.biz.jpa.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class SysUserController {

    @Autowired
    private SysUserService sysUserService;

    @GetMapping("save")
    public SysUserDO save() {
        return sysUserService.saveUser();
    }
}

Access:

http://localhost:8080/save

Return:

{"id":1,"name":"Asurplus","email":"123456@qq.com"}

挿入が成功し、自動インクリメントされた主キーが返されます。JPA の統合はここで完了です。 JPA の使用法については、実際のプロジェクト開発で検討する必要があります。

以上がSpringBoot で JPA をデータ永続化フレームワークとして使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。