Java Technologies উদাহরণ সহ Database Connectivity গাইড ও নোট

233

Spring Boot একটি শক্তিশালী ফ্রেমওয়ার্ক, যা ডেটাবেসের সাথে সংযোগ স্থাপন এবং ডেটা ম্যানিপুলেশন প্রক্রিয়াকে সহজ করে তোলে। Spring Boot এ ডেটাবেস কানেক্টিভিটি সাধারনত Spring Data JPA বা Spring JDBC এর মাধ্যমে সম্পন্ন হয়। এখানে Spring Data JPA ব্যবহার করে ডেটাবেস কানেক্টিভিটি সেটআপ করার উদাহরণ দেয়া হবে।


1. প্রয়োজনীয় ডিপেনডেন্সি ইনস্টল করা

Spring Boot অ্যাপ্লিকেশনে ডেটাবেস কানেক্টিভিটি সেটআপ করতে হলে প্রথমে spring-boot-starter-data-jpa এবং ডেটাবেসের জন্য প্রয়োজনীয় ড্রাইভার ডিপেনডেন্সি (যেমন MySQL এর জন্য mysql-connector-java) আপনার pom.xml ফাইলে যোগ করতে হবে।

<dependencies>
    <!-- Spring Boot Starter Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Spring Boot Starter Data JPA -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <!-- MySQL Connector Driver -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
</dependencies>

এখানে, spring-boot-starter-web ওয়েব অ্যাপ্লিকেশনের জন্য, spring-boot-starter-data-jpa ডেটাবেস কানেক্টিভিটির জন্য এবং mysql-connector-java MySQL ডেটাবেসের জন্য ড্রাইভার হিসেবে ব্যবহার করা হয়েছে।


2. application.properties কনফিগারেশন

Spring Boot অ্যাপ্লিকেশনটি ডেটাবেসের সাথে সংযোগ স্থাপন করার জন্য application.properties অথবা application.yml ফাইলের মাধ্যমে ডেটাবেস কনফিগারেশন করতে হয়। এখানে, MySQL ডেটাবেসের জন্য কনফিগারেশন দেখানো হলো।

# Database Configuration
spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

এখানে:

  • spring.datasource.url: ডেটাবেসের URL।
  • spring.datasource.username এবং spring.datasource.password: ডেটাবেসের ইউজারনেম ও পাসওয়ার্ড।
  • spring.jpa.hibernate.ddl-auto: Hibernate এর জন্য ডেটাবেস স্কিমা আপডেট করার পদ্ধতি (এখানে update রাখা হয়েছে, যার মানে হল স্কিমা পরিবর্তন হলে Hibernate তা আপডেট করবে)।

3. Entity ক্লাস তৈরি করা

Spring Data JPA ব্যবহার করতে হলে, প্রথমে আমাদের একটি Entity ক্লাস তৈরি করতে হবে। এই ক্লাসটি ডেটাবেসের টেবিলের সাথে ম্যাপ করা হবে।

package com.example.helloworld.model;

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

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;
    private String email;

    // 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 getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

এখানে, @Entity অ্যানোটেশন দ্বারা User ক্লাসটিকে একটি JPA Entity হিসেবে চিহ্নিত করা হয়েছে, এবং @Id@GeneratedValue অ্যানোটেশন দিয়ে id ফিল্ডটিকে প্রাইমারি কি হিসেবে চিহ্নিত করা হয়েছে। GenerationType.IDENTITY ডাটাবেসে প্রাইমারি কি অটোমেটিক্যালি ইনক্রিমেন্ট করার জন্য ব্যবহৃত হয়।


4. Repository Interface তৈরি করা

Spring Data JPA এর সাহায্যে ডেটাবেস অপারেশন করার জন্য একটি Repository Interface তৈরি করতে হবে, যা JpaRepository অথবা CrudRepository ইন্টারফেস এক্সটেন্ড করবে।

package com.example.helloworld.repository;

import com.example.helloworld.model.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
    // Custom query methods can be added here if needed
}

এখানে, UserRepository একটি JpaRepository ইন্টারফেস, যা User Entity এর উপর CRUD অপারেশন (Create, Read, Update, Delete) করার জন্য প্রয়োজনীয় মেথডগুলি স্বয়ংক্রিয়ভাবে প্রদান করে।


5. Service ক্লাস তৈরি করা

UserService ক্লাসে UserRepository ইনজেক্ট করে ডেটাবেসের সাথে কাজ করার লজিক সম্পাদন করা হবে।

package com.example.helloworld.service;

import com.example.helloworld.model.User;
import com.example.helloworld.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {

    private final UserRepository userRepository;

    @Autowired
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    public User getUserById(Long id) {
        return userRepository.findById(id).orElse(null);
    }

    public User createUser(User user) {
        return userRepository.save(user);
    }

    public void deleteUser(Long id) {
        userRepository.deleteById(id);
    }
}

এখানে, UserService ক্লাসে UserRepository ব্যবহার করে বিভিন্ন ডেটাবেস অপারেশন যেমন ইউজার তৈরি করা, ইউজার পাওয়া, এবং ইউজার মুছে ফেলা হচ্ছে।


6. Controller ক্লাস তৈরি করা

এখন, আমাদের একটি Controller ক্লাস তৈরি করতে হবে, যা HTTP রিকোয়েস্ট রিসিভ করে এবং সেগুলির উপর নির্দিষ্ট সার্ভিস মেথড কল করবে।

package com.example.helloworld.controller;

import com.example.helloworld.model.User;
import com.example.helloworld.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {

    private final UserService userService;

    @Autowired
    public UserController(UserService userService) {
        this.userService = userService;
    }

    @GetMapping
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }

    @GetMapping("/{id}")
    public User getUser(@PathVariable Long id) {
        return userService.getUserById(id);
    }

    @PostMapping
    public User createUser(@RequestBody User user) {
        return userService.createUser(user);
    }

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

এখানে, UserController ক্লাসে UserService মেথডগুলো কল করা হচ্ছে:

  • @GetMapping: সকল ইউজার বা নির্দিষ্ট ইউজারের তথ্য পাওয়া যাবে।
  • @PostMapping: নতুন ইউজার তৈরি করা হবে।
  • @DeleteMapping: নির্দিষ্ট ইউজার মুছে ফেলা হবে।

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

অ্যাপ্লিকেশন চালানোর জন্য, main() মেথডের মাধ্যমে Spring Boot অ্যাপ্লিকেশন রান করা হবে।

package com.example.helloworld;

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

@SpringBootApplication
public class HelloWorldApplication {

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

সারাংশ

Spring Boot এর মাধ্যমে ডেটাবেস কানেক্টিভিটি স্থাপন করা খুবই সহজ। Spring Data JPA ব্যবহার করে Entity, Repository এবং Service তৈরি করে ডেটাবেস অপারেশন করা যায়। @Entity অ্যানোটেশন দ্বারা Entity ক্লাস তৈরি করা হয়, JpaRepository ব্যবহার করে ডেটাবেসের উপর CRUD অপারেশন সম্পাদন করা হয়, এবং @RestController ব্যবহার করে API তৈরি করা হয়। Spring Boot আপনাকে দ্রুত ও সহজে ডেটাবেস কানেক্টিভিটি এবং ডেটা ম্যানিপুলেশন করতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...