Rumah >Java >javaTutorial >Bina lapisan akses data berasaskan ORM menggunakan Spring Boot dan JPA

Bina lapisan akses data berasaskan ORM menggunakan Spring Boot dan JPA

WBOY
WBOYasal
2023-06-22 10:20:00731semak imbas

Dalam pembangunan aplikasi moden, lapisan akses data memainkan peranan penting sebagai jambatan antara aplikasi dan pangkalan data. ORM (Object Relational Mapping) telah menjadi teknologi penting untuk meningkatkan kecekapan pembangunan lapisan capaian data dan memudahkan pengaturcaraan pangkalan data. Artikel ini akan memperkenalkan cara menggunakan Spring Boot dan JPA untuk membina lapisan akses data berasaskan ORM.

  1. Pengenalan

Spring Boot ialah rangka kerja Java yang ringan untuk membina aplikasi web dengan pantas. Ia menyediakan banyak ciri mudah seperti konfigurasi automatik dan pembangunan pesat. Sementara itu, JPA (Java Persistence API) ialah rangka kerja Java ORM yang memetakan objek Java ke jadual dalam pangkalan data hubungan. Menggunakan Spring Boot dan JPA, kami boleh membina lapisan akses data berasaskan ORM dengan cepat dan cekap.

  1. Mengkonfigurasi kebergantungan

Spring Boot menyediakan banyak kebergantungan untuk menyepadukan rangka kerja lain dengan mudah. Mula-mula, kita perlu menambah kebergantungan berikut dalam fail pom.xml:

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

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

Antara kebergantungan di atas, "spring-boot-starter-web" digunakan untuk membina aplikasi web, "spring-boot-starter - data-jpa" untuk menggunakan rangka kerja JPA dan "h2" untuk pangkalan data dalam memori, membolehkan kami membangunkan dan menguji aplikasi kami dengan cepat.

  1. Buat kelas entiti

Sebelum mula menggunakan JPA untuk akses data, kita perlu mencipta kelas entiti yang sepadan dengan jadual pangkalan data. Di sini saya akan mencipta kelas entiti yang dipanggil "Pengguna" yang akan dipetakan ke jadual pangkalan data yang dipanggil "pengguna". Berikut ialah kod untuk kelas entiti:

@Entity
@Table(name = "users")
public class User {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    private String firstName;
    
    private String lastName;
    
    private String email;
    
    // getters and setters
}

Dalam kod di atas, anotasi "@Entity" digunakan untuk memetakan kelas Java kepada kelas entiti dan anotasi "@Table" digunakan untuk nyatakan nama jadual yang sepadan dalam pangkalan data. Selain itu, anotasi "@Id" digunakan untuk mengenal pasti kunci utama entiti dan anotasi "@GeneratedValue" menentukan strategi penjanaan kunci utama.

  1. Buat lapisan akses data

Kini, kita boleh mencipta lapisan akses data untuk menggunakan JPA untuk akses data. Di sini, saya akan mencipta antara muka yang dipanggil "UserRepository" yang akan mewarisi antara muka "CrudRepository" daripada Spring Data JPA. Berikut ialah kod untuk "UserRepository":

@Repository
public interface UserRepository extends CrudRepository<User, Long> {
    
}

Dalam kod di atas, anotasi "@Repository" digunakan untuk mengenal pasti lapisan akses data sebagai komponen Spring dan antara muka "CrudRepository" menyediakan beberapa asas Operasi CRUD (contohnya, simpan, kemas kini atau padam entiti).

  1. Menyuntik lapisan akses data

Kini kita boleh menyuntik lapisan akses data yang dibuat sebelum ini dalam lapisan perkhidmatan aplikasi. Di sini saya akan membuat kelas yang dipanggil "UserService" yang akan menggunakan "UserRepository" untuk melaksanakan akses data. Berikut ialah kod untuk "UserService":

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    public Iterable<User> getUsers() {
        return userRepository.findAll();
    }
    
    public void saveUser(User user) {
        userRepository.save(user);
    }
    
    public void deleteUsers() {
        userRepository.deleteAll();
    }
}

Dalam kod di atas, anotasi "@Service" digunakan untuk mengenal pasti lapisan perkhidmatan sebagai komponen Spring dan anotasi "@Autowired" digunakan untuk menyuntik "UserRepository" ke dalam "UserService " untuk akses data. Selain itu, kaedah "getUsers" mendapatkan semula semua pengguna daripada pangkalan data menggunakan kaedah "findAll", kaedah "saveUser" menyimpan pengguna ke pangkalan data dan kaedah "deleteUsers" memadamkan semua pengguna.

  1. Menulis Kelas Pengawal

Akhir sekali, kita perlu menulis kelas pengawal untuk mendedahkan lapisan perkhidmatan sebagai API REST. Di sini saya akan mencipta kelas pengawal yang dipanggil "UserController" yang akan menggunakan "UserService" untuk mengendalikan permintaan HTTP. Berikut ialah kod untuk "UserController":

@RestController
@RequestMapping("/users")
public class UserController {
    
    @Autowired
    private UserService userService;

    @GetMapping
    public Iterable<User> getUsers() {
        return userService.getUsers();
    }
    
    @PostMapping
    public void saveUser(@RequestBody User user) {
        userService.saveUser(user);
    }
    
    @DeleteMapping
    public void deleteUsers() {
        userService.deleteUsers();
    }
}

Dalam kod di atas, anotasi "@RestController" digunakan untuk mengenal pasti kelas pengawal sebagai pengawal Spring MVC dan anotasi "@RequestMapping" digunakan untuk memetakan permintaan untuk mengawal kelas Peranti. Selain itu, kaedah "getUsers" memetakan permintaan HTTP GET ke laluan "/users" dan mendapatkan semula semua pengguna menggunakan "UserService", dan kaedah "saveUser" memetakan permintaan HTTP POST ke laluan "/users" dan menyimpan pengguna ke dalam pangkalan data , kaedah "deleteUsers" memetakan permintaan HTTP DELETE ke laluan "/users" dan memadam semua pengguna daripada pangkalan data.

  1. Kesimpulan

Dalam artikel ini, kami memperkenalkan cara menggunakan Spring Boot dan JPA untuk membina lapisan akses data berasaskan ORM. Dengan mencipta kelas entiti, lapisan akses data dan lapisan perkhidmatan, menyepadukannya dengan kelas pengawal, kami boleh melaksanakan operasi CRUD asas dengan mudah dan mendedahkan data sebagai REST API. Penggunaan ORM telah mengubah cara pengaturcaraan pangkalan data dilakukan dan meningkatkan kecekapan pembangunan.

Atas ialah kandungan terperinci Bina lapisan akses data berasaskan ORM menggunakan Spring Boot dan JPA. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn