JPA ialah singkatan Java Persistence API Nama Cina ialah Java Persistence Layer API Ia adalah hubungan pemetaan antara anotasi JDK 5.0 atau objek penerangan XML dan jadual hubungan, dan mengekalkan objek entiti pada masa jalan ke dalam pangkalan data.
<!-- 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 mempunyai jumlah lima nilai pilihan
tiada: Buat apa-apa
buat: Setiap kali hibernate dimuatkan, jadual yang dijana terakhir akan dipadamkan dan kemudian jadual baharu akan dijana berdasarkan kelas model anda, walaupun ia adalah dua kali Ini dilakukan walaupun tiada perubahan Ini adalah sebab penting untuk kehilangan data jadual pangkalan data.
create-drop: Jadual dijana berdasarkan kelas model setiap kali hibernate dimuatkan, tetapi jadual dipadamkan secara automatik sebaik sahaja sessionFactory ditutup.
kemas kini: Atribut yang paling biasa digunakan Apabila hibernate dimuatkan buat kali pertama, struktur jadual akan ditubuhkan secara automatik berdasarkan kelas model (dengan syarat pangkalan data diwujudkan dahulu) . Apabila hibernate dimuatkan kemudian, ia akan berdasarkan kelas model Kelas secara automatik mengemas kini struktur jadual Walaupun struktur jadual berubah tetapi baris dalam jadual masih wujud, baris sebelumnya tidak akan dipadamkan. Perlu diingatkan bahawa apabila digunakan ke pelayan, struktur jadual tidak akan ditubuhkan serta-merta, tetapi akan menunggu sehingga aplikasi dijalankan buat kali pertama.
sah: Setiap kali hibernate dimuatkan, ia mengesahkan struktur jadual pangkalan data yang dibuat Ia hanya akan membandingkannya dengan jadual dalam pangkalan data, dan tidak akan mencipta jadual baharu, tetapi akan masukkan nilai baru.
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, menunjukkan bahawa atribut ini ialah medan kunci utama
@GeneratedValue(strategy = GenerationType.IDENTITY), menggunakan kaedah auto-kenaikan kunci utama
@Column, menentukan atribut medan pangkalan data, anda boleh menetapkan jenis data, panjang, ulasan dan maklumat lain, anda juga boleh menulis anotasi, jpa secara automatik akan mengenali
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> { }
@Repositori, menunjukkan bahawa ini ialah lapisan akses data
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; } }
Kami memasukkan sekeping data ke dalam jadual pengguna_sys Memandangkan kunci utama ditambah secara automatik, kami tidak perlu menetapkannya kunci utama. Selepas pemasukan berjaya, kunci utama yang ditambah secara automatik akan ditulis semula ke objek
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(); } }
Akses:
http://localhost:8080/save
.
Pulangan:
{"id":1,"name":"Asurplus","email":"123456@qq.com"}
Pemasukan telah berjaya dan kunci utama yang ditambah secara automatik telah dikembalikan, Jpa Penyepaduan selesai di sini Lebih banyak penggunaan Jpa perlu diterokai dalam pembangunan projek sebenar.
Atas ialah kandungan terperinci Cara menggunakan JPA sebagai rangka kerja kegigihan data dalam SpringBoot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!