برنامه نویسی

بهار داده JPA nedir ?

Spring Data JPA یک ماژول از Spring Data است که یک پروژه فرعی از Spring Framework است و بر اساس Java Persistence API (JPA) ساخته شده است. هدف آن ساده سازی و تسریع توسعه لایه های دسترسی به داده مبتنی بر JPA است. Spring Data JPA عملیات دسترسی به داده ها را با استفاده از ویژگی های اصلی JPA ساده می کند و ویژگی های اضافی مختلفی را ارائه می دهد.

ویژگی های کلیدی Spring Data JPA

  1. انتزاع مخزن: رابط های مخزن را برای CRUD (ایجاد، خواندن، به روز رسانی، حذف) و پرس و جوهای پیچیده تر ارائه می دهد.
  2. روش های پرس و جو: به طور خودکار پرس و جوهایی را بر اساس نام روش ایجاد می کند. مثلا، findByLastName(String lastName) پسندیدن.
  3. پرس و جوهای سفارشی: از نوشتن پرس و جوهای سفارشی با استفاده از JPQL (زبان پرس و جو ماندگاری جاوا) و SQL بومی پشتیبانی می کند.
  4. صفحه بندی و مرتب سازی: به شما امکان می دهد به راحتی عملیات صفحه بندی و مرتب سازی را انجام دهید.
  5. حسابرسی: امکان ضبط خودکار داده هایی مانند زمان ایجاد و به روز رسانی و اطلاعات کاربر را می دهد.
  6. پشتیبانی معاملاتی: مدیریت تراکنش را برای اطمینان از یکپارچگی تراکنش های پایگاه داده ارائه می دهد.

عملیات پایگاه داده با استفاده از Spring Data JPA

در زیر یک مثال نشان داده شده است که نحوه ایجاد اتصال پایگاه داده و انجام عملیات داده با استفاده از Spring Data JPA را نشان می دهد.

وابستگی های Maven


    
        org.springframework.boot
        spring-boot-starter-data-jpa
    
    
        org.springframework.boot
        spring-boot-starter-web
    
    
        com.h2database
        h2
        runtime
    

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ویژگی های برنامه (application.properties)

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.h2.console.enabled=true
spring.jpa.hibernate.ddl-auto=update
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کلاس نهاد (Employee.java)

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Employee {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private int age;

    // Getter ve Setter metodları
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

رابط مخزن (EmployeeRepository.java)

import org.springframework.data.repository.CrudRepository;
import java.util.List;

public interface EmployeeRepository extends CrudRepository<Employee, Long> {
    List<Employee> findByName(String name);
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کلاس خدمات (EmployeeService.java)

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class EmployeeService {
    @Autowired
    private EmployeeRepository employeeRepository;

    public Employee saveEmployee(Employee employee) {
        return employeeRepository.save(employee);
    }

    public List<Employee> getEmployeesByName(String name) {
        return employeeRepository.findByName(name);
    }

    public Iterable<Employee> getAllEmployees() {
        return employeeRepository.findAll();
    }
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کلاس کنترلر (EmployeeController.java)

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/employees")
public class EmployeeController {
    @Autowired
    private EmployeeService employeeService;

    @PostMapping
    public Employee createEmployee(@RequestBody Employee employee) {
        return employeeService.saveEmployee(employee);
    }

    @GetMapping("/{name}")
    public List<Employee> getEmployeesByName(@PathVariable String name) {
        return employeeService.getEmployeesByName(name);
    }

    @GetMapping
    public Iterable<Employee> getAllEmployees() {
        return employeeService.getAllEmployees();
    }
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

برنامه Spring Boot (SpringDataJpaApplication.java)

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringDataJpaApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringDataJpaApplication.class, args);
    }
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیحات

  1. اعتیادها: شروع کننده های Spring Boot و وابستگی های پایگاه داده H2 تعریف شده اند.
  2. ویژگی های برنامه: اطلاعات اتصال و سایر تنظیمات برای پایگاه داده H2 انجام شده است.
  3. کلاس موجودیت: Employee کلاس به جدول پایگاه داده نگاشت می شود. @Entity ve @Id حاشیه نویسی استفاده شد.
  4. رابط مخزن: EmployeeRepository رابط Spring Data CrudRepository با گسترش رابط، عملیات اولیه CRUD را فراهم می کند. علاوه بر این، findByName یک پرس و جو ویژه با متد تعریف می شود.
  5. کلاس خدمات: EmployeeService کلاس شامل منطق تجاری و EmployeeRepositoryعملیات داده را با استفاده از .
  6. کلاس کنترلر: EmployeeController کلاس نقاط پایانی RESTful API را تعریف می کند.
  7. اپلیکیشن Spring Boot: SpringDataJpaApplication کلاس برنامه Spring Boot را شروع می کند.

مزایای Spring Data JPA

  1. آسان برای استفاده: انجام سریع عملیات CRUD به لطف رابط های مخزن.
  2. بهره وری: به صورت خودکار پرس و جو ایجاد کنید و پرس و جوهای پیچیده را با JPQL بنویسید.
  3. توسعه پذیری: امکان تعریف رابط ها و روش های مخزن سفارشی شده.
  4. ادغام: کاملاً با Spring Boot، پیکربندی خودکار و پیکربندی ساده سازگار است.
  5. استقلال پایگاه داده: قابلیت کار آسان با انواع مختلف پایگاه داده.

Spring Data JPA عملیات دسترسی به داده ها را با استفاده از انعطاف پذیری و قدرت JPA ساده و تسریع می کند. این برنامه توسعه سریع برنامه را فراهم می کند، به ویژه هنگامی که با Spring Boot استفاده می شود.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید
بستن
دکمه بازگشت به بالا