Rumah  >  Artikel  >  Java  >  Cara menggunakan JPA sebagai rangka kerja kegigihan data dalam SpringBoot

Cara menggunakan JPA sebagai rangka kerja kegigihan data dalam SpringBoot

WBOY
WBOYke hadapan
2023-05-17 18:13:40910semak imbas

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.

1. Memperkenalkan kebergantungan

<!-- 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. Konfigurasi sambungan pangkalan data

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.

3. Objek data (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, 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

4. Objek kegigihan

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

5 Lapisan perniagaan

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

6 Ujian

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam