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: 최대 절전 모드가 로드될 때마다 삭제 사용 지난번에 생성된 테이블을 삭제한 다음 모델 클래스를 기반으로 새 테이블을 다시 생성해야 합니다. 두 번 변경되지 않더라도 이 작업을 수행해야 합니다. 이는 데이터베이스 테이블 데이터가 손실되는 중요한 이유입니다.
create-drop: hibernate가 로드될 때마다 모델 클래스를 기반으로 테이블이 생성되지만, sessionFactory가 닫히자마자 테이블은 자동으로 삭제됩니다.
update: 가장 일반적으로 사용되는 속성입니다. 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)임을 나타냅니다.
@ 열은 데이터베이스 필드의 속성을 지정합니다. 데이터 유형, 길이, 설명 및 기타 정보를 설정할 수도 있고 JPA가 자동으로 인식할 수도 있습니다. @Repository, 이는 데이터 액세스 레이어
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> { }
6. Test
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; } }
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(); } }삽입이 성공했고 자동 증가된 기본 키가 여기에서 Jpa 통합이 완료되었습니다. 실제 프로젝트 개발에서 Jpa의 더 많은 사용법을 살펴봐야 합니다.
위 내용은 SpringBoot에서 데이터 지속성 프레임워크로 JPA를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!