Spring Boot ORM এবং REST API Integration

Java Technologies - স্প্রিং বুট ওআরএম (Spring Boot ORM)
112
112

স্প্রিং বুট ORM (Object-Relational Mapping) হলো একটি শক্তিশালী টুল যা ডাটাবেসের টেবিলগুলোর সাথে অবজেক্ট মডেলিং এবং ডাটা ম্যানিপুলেশন করার জন্য ব্যবহৃত হয়। স্প্রিং বুট ORM এর মাধ্যমে সহজেই রিলেশনাল ডাটাবেসের সাথে কাজ করা যায়। অপরদিকে, REST API (Representational State Transfer Application Programming Interface) হলো একটি ওয়েব সার্ভিস আর্কিটেকচার যা HTTP প্রটোকলের মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা আদান-প্রদান করে।

স্প্রিং বুট ORM এবং REST API ইন্টিগ্রেশন ব্যবহার করলে ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্ট আরও কার্যকরী এবং উন্নত হয়। এতে ডাটাবেস থেকে ডেটা নিয়ে API এর মাধ্যমে ব্যবহারকারীর কাছে উপস্থাপন করা যায়, যা একটি মোডেল-ভিউ-কন্ট্রোলার (MVC) আর্কিটেকচারের মত কাজ করে।


স্প্রিং বুট ORM এবং REST API ইন্টিগ্রেশন প্রক্রিয়া

স্প্রিং বুট ORM কনফিগারেশন

স্প্রিং বুট ORM এবং REST API ইন্টিগ্রেশন শুরু করতে প্রথমে স্প্রিং বুট অ্যাপ্লিকেশন তৈরি করতে হবে এবং ORM কনফিগার করতে হবে। সাধারণত, হাইবারনেট (Hibernate) ORM প্রযুক্তি স্প্রিং বুটে ব্যবহৃত হয়, যা ডাটাবেসের টেবিলগুলোকে জাভা অবজেক্টে রূপান্তরিত করে এবং CRUD (Create, Read, Update, Delete) অপারেশন সহজ করে।

ডাটাবেস সংযোগ কনফিগারেশন

স্প্রিং বুট অ্যাপ্লিকেশনটি ডাটাবেসের সাথে সংযুক্ত করার জন্য application.properties অথবা application.yml ফাইলে কনফিগারেশন করতে হয়। উদাহরণস্বরূপ:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

এটি স্প্রিং বুট অ্যাপ্লিকেশনকে MySQL ডাটাবেসে সংযোগ স্থাপনে সহায়তা করবে।


REST API তৈরি করা

স্প্রিং বুট ORM এবং REST API ইন্টিগ্রেশন এর পরবর্তী ধাপে API তৈরি করতে হবে। এই API গুলি ডাটাবেসের CRUD অপারেশন পরিচালনা করবে। স্প্রিং বুট REST API তৈরি করতে সাধারণত @RestController অ্যানোটেশন ব্যবহার করা হয়, যা HTTP রিকোয়েস্টের রেসপন্স হিসেবে JSON অথবা XML ফরম্যাটে ডেটা রিটার্ন করে।

ডোমেইন ক্লাস তৈরি

প্রথমে একটি ডোমেইন ক্লাস তৈরি করতে হবে, যা ডাটাবেসের টেবিলের সাথে সম্পর্কিত থাকবে। উদাহরণস্বরূপ, একটি Employee ক্লাস তৈরি করা যেতে পারে:

@Entity
public class Employee {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    private String name;
    private String designation;
    private double salary;

    // Getters and Setters
}

রেপোজিটরি (Repository) ইন্টারফেস তৈরি

স্প্রিং ডাটা জেপিএ (Spring Data JPA) রেপোজিটরি ব্যবহারের মাধ্যমে ডাটাবেস অপারেশন সহজে করা যায়। রেপোজিটরি ইন্টারফেস তৈরি করা হয় যাতে CRUD অপারেশনগুলো অটোমেটিক্যালি হ্যান্ডেল করা যায়:

@Repository
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
}

সার্ভিস (Service) লেয়ার তৈরি

কন্ট্রোলার এবং রেপোজিটরি লেয়ারের মাঝে একটি সার্ভিস লেয়ার তৈরি করা হয়, যা বbusiness logic অ্যাপ্লাই করে। উদাহরণস্বরূপ:

@Service
public class EmployeeService {

    @Autowired
    private EmployeeRepository employeeRepository;

    public List<Employee> getAllEmployees() {
        return employeeRepository.findAll();
    }

    public Employee getEmployeeById(Long id) {
        return employeeRepository.findById(id).orElse(null);
    }

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

    public void deleteEmployee(Long id) {
        employeeRepository.deleteById(id);
    }
}

REST কন্ট্রোলার তৈরি

এখন স্প্রিং বুট REST কন্ট্রোলার তৈরি করতে হবে, যা HTTP রিকোয়েস্টের সাথে সংযুক্ত থাকবে এবং API রেসপন্স প্রদান করবে। উদাহরণস্বরূপ:

@RestController
@RequestMapping("/api/employees")
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;

    @GetMapping
    public List<Employee> getAllEmployees() {
        return employeeService.getAllEmployees();
    }

    @GetMapping("/{id}")
    public Employee getEmployeeById(@PathVariable Long id) {
        return employeeService.getEmployeeById(id);
    }

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

    @DeleteMapping("/{id}")
    public void deleteEmployee(@PathVariable Long id) {
        employeeService.deleteEmployee(id);
    }
}

এটি একটি সম্পূর্ণ REST API তৈরি করে যা ডাটাবেস থেকে ডেটা ফেরত পাঠাবে এবং API এর মাধ্যমে ডেটা ম্যানিপুলেশন করতে সহায়তা করবে।


সারাংশ

স্প্রিং বুট ORM এবং REST API ইন্টিগ্রেশন ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টে অত্যন্ত কার্যকরী। স্প্রিং বুট ORM ব্যবহার করে ডাটাবেসের সাথে সম্পর্কিত ডোমেইন অবজেক্ট তৈরি এবং CRUD অপারেশন পরিচালনা সহজ হয়ে ওঠে। একে REST API এর মাধ্যমে এক্সপোজ করা হয়, যার ফলে ক্লায়েন্ট সিস্টেমগুলোর সাথে ডেটা আদান-প্রদান করা সহজ হয়। এই ইন্টিগ্রেশন প্রক্রিয়া স্প্রিং বুট ফ্রেমওয়ার্কে সহজ, দ্রুত এবং স্কেলেবল ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য উপযোগী।

Content added By

Spring Boot ORM ব্যবহার করে REST API তৈরি করা

103
103

স্প্রিং বুট ওআরএম (Spring Boot ORM) ব্যবহার করে REST API তৈরি করা একটি সাধারণ প্রক্রিয়া যা ডেটাবেসের সাথে ইন্টিগ্রেশন এবং ডেটা পরিচালনার কাজ সহজ করে। এখানে আমরা দেখব কীভাবে স্প্রিং বুট, JPA এবং Hibernate ব্যবহার করে RESTful API তৈরি করা যায়।


প্রয়োজনীয় ডিপেনডেন্সি

প্রথমে, আপনাকে আপনার pom.xml ফাইলে প্রয়োজনীয় ডিপেনডেন্সি যোগ করতে হবে।

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

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

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

এখানে আমরা spring-boot-starter-data-jpa এবং spring-boot-starter-web ডিপেনডেন্সি ব্যবহার করেছি। h2 ডাটাবেসটি একটি ইন-মেমরি ডাটাবেস হিসেবে ব্যবহৃত হবে যা শুধু ডেভেলপমেন্টের জন্য উপযোগী।


ডেটাবেস কনফিগারেশন

application.properties ফাইলে ডেটাবেস কনফিগারেশন যোগ করুন।

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update

এটি H2 ডেটাবেসে সংযোগ স্থাপন করবে এবং Hibernate কে ডেটাবেসের স্কিমা স্বয়ংক্রিয়ভাবে আপডেট করার অনুমতি দেবে।


JPA Entity ক্লাস তৈরি

এখন আমরা একটি JPA Entity ক্লাস তৈরি করব যা ডেটাবেসের টেবিলের সাথে ম্যাপ হবে।

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Product {

    @Id
    private Long id;
    private String name;
    private double price;

    // getters and setters
}

এই ক্লাসের মধ্যে @Entity অ্যানোটেশনটি এটি একটি JPA Entity ক্লাস হিসেবে চিহ্নিত করে এবং @Id অ্যানোটেশনটি id ক্ষেত্রটিকে প্রাইমারি কি হিসেবে চিহ্নিত করে।


Repository Interface

স্প্রিং ডেটা JPA ব্যবহার করে আমরা একটি Repository Interface তৈরি করব, যা ডেটাবেসের CRUD (Create, Read, Update, Delete) অপারেশনগুলি সহজভাবে পরিচালনা করবে।

import org.springframework.data.jpa.repository.JpaRepository;

public interface ProductRepository extends JpaRepository<Product, Long> {
}

এখানে ProductRepository ইন্টারফেসটি JpaRepository কে এক্সটেন্ড করেছে এবং Product Entity ও Long টাইপ ব্যবহার করছে।


REST Controller ক্লাস

এখন আমরা একটি REST Controller ক্লাস তৈরি করব, যা আমাদের API-এর হ্যান্ডলারের কাজ করবে। এখানে আমরা কিছু সাধারণ HTTP মেথড (GET, POST, PUT, DELETE) ব্যবহার করব।

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

import java.util.List;
import java.util.Optional;

@RestController
@RequestMapping("/api/products")
public class ProductController {

    @Autowired
    private ProductRepository productRepository;

    // Get all products
    @GetMapping
    public List<Product> getAllProducts() {
        return productRepository.findAll();
    }

    // Get product by ID
    @GetMapping("/{id}")
    public Optional<Product> getProductById(@PathVariable Long id) {
        return productRepository.findById(id);
    }

    // Create a new product
    @PostMapping
    public Product createProduct(@RequestBody Product product) {
        return productRepository.save(product);
    }

    // Update product by ID
    @PutMapping("/{id}")
    public Product updateProduct(@PathVariable Long id, @RequestBody Product productDetails) {
        Product product = productRepository.findById(id).orElseThrow();
        product.setName(productDetails.getName());
        product.setPrice(productDetails.getPrice());
        return productRepository.save(product);
    }

    // Delete product by ID
    @DeleteMapping("/{id}")
    public void deleteProduct(@PathVariable Long id) {
        productRepository.deleteById(id);
    }
}

এই Controller ক্লাসটি RESTful API তৈরির জন্য প্রয়োজনীয় GET, POST, PUT, DELETE মেথডগুলিকে ম্যানেজ করবে। এখানে আমরা স্প্রিং ডেটা JPA-এর ProductRepository ব্যবহার করে ডেটাবেস থেকে ডেটা রিট্রিভ, ক্রিয়েট, আপডেট এবং ডিলিট করছি।


অ্যাপ্লিকেশন চালানো

এখন আপনার অ্যাপ্লিকেশন চালানোর জন্য, SpringBootApplication ক্লাস তৈরি করুন:

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

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

এটি অ্যাপ্লিকেশন শুরু করবে এবং আপনার API প্রস্তুত হবে।


API টেস্টিং

আপনি API গুলি টেস্ট করার জন্য Postman বা Curl ব্যবহার করতে পারেন।

  1. GET /api/products - সকল প্রোডাক্ট দেখাবে।
  2. POST /api/products - একটি নতুন প্রোডাক্ট তৈরি করবে।
  3. GET /api/products/{id} - নির্দিষ্ট প্রোডাক্ট ID দিয়ে তথ্য দেখাবে।
  4. PUT /api/products/{id} - প্রোডাক্টের তথ্য আপডেট করবে।
  5. DELETE /api/products/{id} - প্রোডাক্ট মুছে ফেলবে।

স্প্রিং বুট ওআরএম ব্যবহার করে REST API তৈরি করা খুবই সহজ এবং এর মাধ্যমে আপনি দ্রুত ডেটাবেসের সাথে ইন্টিগ্রেশন করতে পারেন। JPA এবং Hibernate এর সাহায্যে ডেটাবেস অপারেশনগুলো খুব কম কোডে সম্পন্ন করা সম্ভব।

Content added By

JSON/XML Response এবং CRUD অপারেশন

81
81

Spring Boot ORM (Object-Relational Mapping) একটি সহজ ও শক্তিশালী উপায়, যা Java অবজেক্ট ও রিলেশনাল ডেটাবেসের মধ্যে সংযোগ স্থাপন করতে সাহায্য করে। Spring Boot ORM সাধারণত JPA (Java Persistence API) অথবা Hibernate এর মাধ্যমে ডেটাবেসের সাথে যোগাযোগ স্থাপন করে, যেখানে ডেটা অবজেক্ট আকারে রাখা হয় এবং ডেটাবেসে সেভ/ফেচ করা হয়। এই প্রক্রিয়া ডেটা ম্যানিপুলেশনকে সহজ এবং অটোমেটেড করে তোলে।


JSON/XML Response

Spring Boot অ্যাপ্লিকেশন JSON এবং XML ফরম্যাটে রেসপন্স প্রদান করতে সক্ষম। যখন API কল করা হয়, তখন ডেটা সাধারণত JSON বা XML ফরম্যাটে রিটার্ন হয়। JSON (JavaScript Object Notation) বেশি ব্যবহৃত হলেও, কিছু অ্যাপ্লিকেশনে XML (eXtensible Markup Language) ব্যবহৃত হতে পারে। Spring Boot এর @RestController এবং @ResponseBody অ্যানোটেশন ব্যবহার করে এই ফরম্যাটে রেসপন্স প্রদান করা যায়।

JSON রেসপন্স

Spring Boot অ্যাপ্লিকেশনে JSON রেসপন্স পাওয়ার জন্য, সাধারণত @RestController অ্যানোটেশন ব্যবহার করা হয়। Spring Boot নিজেই JSON ফরম্যাটে রেসপন্স তৈরি করার জন্য Jackson লাইব্রেরি ব্যবহৃত হয়।

@RestController
public class UserController {

    @GetMapping("/user/{id}")
    public User getUser(@PathVariable Long id) {
        return new User(id, "John Doe", "john.doe@example.com");
    }
}

উপরের কোডে, /user/{id} এ GET রিকোয়েস্ট আসলে, getUser() মেথড User অবজেক্ট রিটার্ন করবে, যা Spring Boot স্বয়ংক্রিয়ভাবে JSON ফরম্যাটে রূপান্তরিত করবে।

XML রেসপন্স

Spring Boot এ XML রেসপন্স পাওয়ার জন্য, আপনাকে JAXB (Java Architecture for XML Binding) বা Jackson XML লাইব্রেরি ব্যবহার করতে হবে। XML রেসপন্সটি কনফিগার করার জন্য Spring Boot এর @XmlRootElement অ্যানোটেশন এবং XML মেসেজ কনভার্টারের সাহায্য নিতে হবে।

@RestController
public class UserController {

    @GetMapping(value = "/user/{id}", produces = MediaType.APPLICATION_XML_VALUE)
    public User getUser(@PathVariable Long id) {
        return new User(id, "John Doe", "john.doe@example.com");
    }
}

এখানে, produces = MediaType.APPLICATION_XML_VALUE বলে দেয়া হয়েছে যে, এই API কলটি XML ফরম্যাটে রেসপন্স প্রদান করবে।


CRUD অপারেশন

Spring Boot ORM এর সাহায্যে CRUD (Create, Read, Update, Delete) অপারেশন খুব সহজভাবে করা যায়। JPA (বা Hibernate) রেপোজিটরি ব্যবহৃত হলে, আপনি সহজেই ডেটাবেসে CRUD অপারেশন করতে পারেন।

Create (তৈরি করা)

Spring Data JPA রেপোজিটরি ব্যবহার করে একটি নতুন অবজেক্ট ডেটাবেসে সেভ করা যায়।

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

এখানে, UserRepository একটি JpaRepository ইন্টারফেস, যা User অবজেক্টের উপর CRUD অপারেশন করতে সক্ষম। এখন একটি নতুন ইউজার সেভ করার জন্য save() মেথড ব্যবহার করা যায়:

@RestController
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @PostMapping("/user")
    public User createUser(@RequestBody User user) {
        return userRepository.save(user);
    }
}

এখানে @RequestBody অ্যানোটেশন ব্যবহার করে রিকোয়েস্ট বডি থেকে User অবজেক্টটি গ্রহণ করা হয়েছে এবং সেটি ডেটাবেসে সেভ করা হয়েছে।

Read (পড়া)

findById() মেথডের মাধ্যমে ডেটাবেস থেকে একটি অবজেক্ট রিট্রিভ করা যায়।

@GetMapping("/user/{id}")
public User getUser(@PathVariable Long id) {
    return userRepository.findById(id).orElseThrow(() -> new RuntimeException("User not found"));
}

এখানে, findById() মেথড Optional<User> রিটার্ন করে, যার মধ্যে যদি ডেটা থাকে, তবে সেটি রিটার্ন হবে, না হলে একটি RuntimeException থ্রো হবে।

Update (আপডেট করা)

ডেটাবেসে কোনো অবজেক্টের তথ্য আপডেট করতে, প্রথমে সেই অবজেক্টটি ফেচ করতে হয় এবং তারপর পরিবর্তন করে সেভ করতে হয়।

@PutMapping("/user/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User userDetails) {
    User user = userRepository.findById(id).orElseThrow(() -> new RuntimeException("User not found"));
    user.setName(userDetails.getName());
    user.setEmail(userDetails.getEmail());
    return userRepository.save(user);
}

এখানে, প্রথমে ইউজার ডেটা খুঁজে বের করে, তারপর সেটি আপডেট করা হয়েছে এবং save() মেথডের মাধ্যমে পরিবর্তিত ডেটা ডেটাবেসে সেভ করা হয়েছে।

Delete (মুছে ফেলা)

কোনো অবজেক্ট ডেটাবেস থেকে মুছে ফেলার জন্য deleteById() মেথড ব্যবহার করা যায়।

@DeleteMapping("/user/{id}")
public void deleteUser(@PathVariable Long id) {
    userRepository.deleteById(id);
}

এখানে, deleteById() মেথড দিয়ে ইউজারের তথ্য ডেটাবেস থেকে মুছে ফেলা হয়েছে।


সারাংশ

Spring Boot ORM (JPA/Hibernate) এর মাধ্যমে সহজে ডেটাবেসের সাথে কাজ করা সম্ভব হয়। JSON বা XML রেসপন্সের মাধ্যমে API ডেভেলপমেন্ট করা যায় এবং CRUD (Create, Read, Update, Delete) অপারেশন Spring Data JPA রেপোজিটরি ব্যবহার করে খুব সহজভাবে করা সম্ভব। Spring Boot এই সব কাজকে দ্রুত ও কার্যকরভাবে সম্পাদন করতে সক্ষম।

Content added By

উদাহরণ সহ REST API এবং ORM Integration

145
145

REST API এবং ORM Integration কি?

REST (Representational State Transfer) API হল একটি সফটওয়্যার আর্কিটেকচার স্টাইল যা HTTP প্রোটোকলের মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ স্থাপন করে। ORM (Object Relational Mapping) হল একটি প্রযুক্তি যা ডেটাবেস টেবিলগুলোর সঙ্গে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষার অবজেক্টগুলোর ম্যাপিংয়ের মাধ্যমে ডেটাবেস পরিচালনা সহজ করে। স্প্রিং বুট ORM ব্যবহার করে আমরা REST API এবং ORM কে একসাথে ইন্টিগ্রেট করতে পারি, যা ডেটাবেসে CRUD (Create, Read, Update, Delete) অপারেশন কার্যকর করতে সাহায্য করে।


স্প্রিং বুট ORM Integration: উদাহরণ সহ

এখানে একটি সাধারণ উদাহরণ দেখানো হবে যেখানে স্প্রিং বুট ORM (JPA) এবং REST API এর মাধ্যমে ডেটাবেসে অবজেক্ট ম্যানিপুলেশন করা হয়।

১. স্প্রিং বুট প্রজেক্ট সেটআপ

প্রথমে আপনাকে স্প্রিং বুট অ্যাপ্লিকেশন তৈরি করতে হবে। আপনি spring-boot-starter-web এবং spring-boot-starter-data-jpa ডিপেনডেন্সি গুলো ব্যবহার করতে পারেন। এখানে Maven ব্যবহার করা হয়েছে:

<dependencies>
    <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>
</dependencies>

২. ডেটাবেস কনফিগারেশন

স্প্রিং বুট ORM এ JPA কনফিগারেশন করতে হয়। H2 ডেটাবেস ব্যবহার করে উদাহরণ দেখানো হবে।

application.properties ফাইলের মধ্যে নিম্নলিখিত কনফিগারেশন যুক্ত করুন:

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true

৩. ডোমেইন অবজেক্ট তৈরি করা (Entity Class)

এখন আপনি একটি Entity ক্লাস তৈরি করবেন, যা ডেটাবেস টেবিলের প্রতিনিধিত্ব করবে। উদাহরণস্বরূপ, একটি Employee অবজেক্ট:

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Employee {

    @Id
    private Long id;
    private String name;
    private String department;

    // getters and setters
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }
}

৪. রেপোজিটরি তৈরি করা

Employee অবজেক্টের জন্য একটি রেপোজিটরি তৈরি করতে হবে, যা ডেটাবেস অপারেশন পরিচালনা করবে:

import org.springframework.data.jpa.repository.JpaRepository;

public interface EmployeeRepository extends JpaRepository<Employee, Long> {
}

৫. সার্ভিস ক্লাস তৈরি করা

এখন একটি সার্ভিস ক্লাস তৈরি করবেন যা রেপোজিটরি ব্যবহার করে ডেটাবেসে CRUD অপারেশন করবে:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;

@Service
public class EmployeeService {

    @Autowired
    private EmployeeRepository employeeRepository;

    public List<Employee> getAllEmployees() {
        return employeeRepository.findAll();
    }

    public Optional<Employee> getEmployeeById(Long id) {
        return employeeRepository.findById(id);
    }

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

    public void deleteEmployee(Long id) {
        employeeRepository.deleteById(id);
    }
}

৬. REST API কন্ট্রোলার তৈরি করা

এখন একটি REST কন্ট্রোলার তৈরি করতে হবে, যা HTTP রিকোয়েস্টে ডেটাবেস অপারেশন পরিচালনা করবে। EmployeeController ক্লাসটি REST API এর জন্য রাউটিং পরিচালনা করবে।

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

import java.util.List;
import java.util.Optional;

@RestController
@RequestMapping("/api/employees")
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;

    @GetMapping
    public List<Employee> getAllEmployees() {
        return employeeService.getAllEmployees();
    }

    @GetMapping("/{id}")
    public Optional<Employee> getEmployeeById(@PathVariable Long id) {
        return employeeService.getEmployeeById(id);
    }

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

    @DeleteMapping("/{id}")
    public void deleteEmployee(@PathVariable Long id) {
        employeeService.deleteEmployee(id);
    }
}

৭. স্প্রিং বুট অ্যাপ্লিকেশন চালানো

এখন, আপনার অ্যাপ্লিকেশন চলমান অবস্থায়, আপনি ব্রাউজারে অথবা API ক্লায়েন্ট (যেমন Postman) এর মাধ্যমে REST API ব্যবহার করতে পারেন।

  • GET /api/employees – সকল কর্মচারীর তথ্য পাবেন।
  • GET /api/employees/{id} – নির্দিষ্ট কর্মচারীর তথ্য পাবেন।
  • POST /api/employees – নতুন কর্মচারী তৈরি করবেন।
  • DELETE /api/employees/{id} – নির্দিষ্ট কর্মচারী মুছে ফেলবেন।

এটি ছিল স্প্রিং বুট ORM এবং REST API ইন্টিগ্রেশনের একটি সাধারণ উদাহরণ। এই উদাহরণটি দিয়ে আপনি স্প্রিং বুটের মাধ্যমে ডেটাবেস এবং REST API ব্যবস্থাপনা সহজে করতে পারবেন।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion