ホームページ >Java >&#&チュートリアル >SpringBoot で JPA をデータ永続化フレームワークとして使用する方法
JPA は Java Persistence API の略称です。中国語名は Java Persistence Layer API です。これは、JDK 5.0 アノテーションまたは XML 記述オブジェクトとリレーショナル テーブル間のマッピング関係であり、実行時にエンティティ オブジェクトをデータベースに永続化します。
<!-- 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>
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 がロードされるたびに、作成されたデータベース テーブル構造が検証され、データベース内のテーブルとのみ比較され、新しいテーブルは作成されません。値が挿入されます。
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 '用户名称'") private String name; @Column(columnDefinition = "varchar(50) comment '邮箱'") private String email; }
@Id、この属性が主キー フィールドであることを示します
@GeneratedValue(strategy = GenerationType.IDENTITY) は、主キーの自動インクリメント メソッド
@Column を使用して、データベース フィールドの属性を指定します。設定できます。データ型、長さ、コメント、その他の情報、アノテーションを記述することもでき、jpa は自動的に
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 を識別します。これがデータ アクセス層であることを示します
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 テーブルにデータを挿入します。主キーは自動的にインクリメントされるため、主キー。挿入が成功すると、自動インクリメントされた主キーがオブジェクト
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 サイトの他の関連記事を参照してください。