উদাহরণ সহ Spring MVC এবং Hibernate/JPA Integration

Spring MVC এবং Hibernate/JPA Integration - স্প্রিং এমভিসি (Spring MVC) - Java Technologies

346

Spring MVC এবং Hibernate/JPA একসাথে ব্যবহার করলে আপনি একটি শক্তিশালী এবং স্কেলেবল ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারবেন যা ডাটাবেসে ডেটা সংরক্ষণ, আপডেট এবং পরিচালনা করতে সক্ষম। Hibernate/JPA ডেটাবেসের সাথে যোগাযোগের জন্য একটি শক্তিশালী ORM (Object-Relational Mapping) ফ্রেমওয়ার্ক, এবং Spring MVC এর মাধ্যমে একটি ওয়েব অ্যাপ্লিকেশন তৈরি করা হয়।

এই গাইডে, আমরা Spring MVC এবং Hibernate/JPA কিভাবে একত্রে ব্যবহার করতে হয় তা দেখব।


Spring MVC এবং Hibernate/JPA Integration এর ধাপসমূহ:

  1. ডিপেনডেন্সি কনফিগারেশন (Maven):
  2. Hibernate/JPA কনফিগারেশন:
  3. Entity ক্লাস তৈরি:
  4. DAO (Data Access Object) ক্লাস তৈরি:
  5. Controller এবং View তৈরি:

1. Maven ডিপেনডেন্সি কনফিগারেশন:

প্রথমে আপনার pom.xml ফাইলে Spring MVC এবং Hibernate/JPA ডিপেনডেন্সি যুক্ত করতে হবে:

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

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

    <!-- Hibernate ORM (JPA implementation) -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
    </dependency>

    <!-- Database (H2 example, replace with your own DB) -->
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>

    <!-- Spring Boot Starter Test -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

এখানে:

  • spring-boot-starter-web Spring MVC-এর জন্য ব্যবহৃত হয়।
  • spring-boot-starter-data-jpa JPA এবং Hibernate ব্যবহারের জন্য প্রয়োজনীয় ডিপেনডেন্সি।
  • hibernate-core Hibernate এর জন্য ব্যবহৃত হয়।
  • h2 ডাটাবেসের জন্য একটি সাধারণ ইন-মেমরি ডাটাবেস। আপনি MySQL বা PostgreSQL ব্যবহার করতে পারেন।

2. Hibernate/JPA কনফিগারেশন:

application.properties ফাইলে Hibernate/JPA এর কনফিগারেশন করা হয়:

# DataSource Configuration (replace with your DB details)
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

# Enable Hibernate DDL (create/update) auto generation
spring.jpa.hibernate.ddl-auto=update

# Show SQL queries
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

এখানে:

  • spring.datasource.url: ডাটাবেস URL।
  • spring.jpa.hibernate.ddl-auto=update: Hibernate ডাটাবেস স্কিমা স্বয়ংক্রিয়ভাবে আপডেট করবে।
  • spring.jpa.show-sql=true: SQL কুয়েরি কনসোল লোগে দেখাবে।

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

Hibernate বা JPA ব্যবহার করার জন্য একটি Entity ক্লাস তৈরি করতে হবে যা ডাটাবেস টেবিলের প্রতিনিধিত্ব করবে।

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

@Entity
public class User {

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

    // Constructors, Getters, Setters

    public User() {}

    public User(String name, String email) {
        this.name = name;
        this.email = email;
    }

    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: এটি JPA Entity চিহ্নিত করার জন্য ব্যবহৃত হয়।
  • @Id: Primary Key হিসাবে সিলেক্ট করা ফিল্ড।
  • @GeneratedValue(strategy = GenerationType.IDENTITY): Primary Key-র জন্য অটোমেটিক ভ্যালু জেনারেশন।

4. DAO (Data Access Object) ক্লাস তৈরি:

Hibernate/JPA এর সাথে ডেটা অ্যাক্সেস লজিক হ্যান্ডল করতে DAO ক্লাস তৈরি করা হয়। আপনি Spring Data JPA এর JpaRepository ইন্টারফেস ব্যবহার করতে পারেন।

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

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

এখানে:

  • JpaRepository<User, Long>: User Entity এর জন্য CRUD অপারেশন সম্পাদন করে।

5. Controller তৈরি:

Spring MVC কন্ট্রোলার ব্যবহার করে আপনি HTTP রিকোয়েস্টগুলি হ্যান্ডল করতে পারেন এবং জাভা অবজেক্টকে ভিউ তে রিটার্ন করতে পারেন।

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserRepository userRepository;

    // Display all users
    @GetMapping("/list")
    public String getAllUsers(Model model) {
        model.addAttribute("users", userRepository.findAll());
        return "userList";  // userList.jsp or userList.html
    }

    // Add new user
    @PostMapping("/add")
    public String addUser(User user) {
        userRepository.save(user);
        return "redirect:/user/list";  // After adding, redirect to the user list
    }
}

এখানে:

  • @GetMapping("/list"): সকল ইউজার ডেটা userRepository.findAll() দিয়ে ডাটাবেস থেকে নিয়ে আসে এবং userList ভিউতে পাঠানো হয়।
  • @PostMapping("/add"): নতুন ইউজার ডেটা userRepository.save() দিয়ে ডাটাবেসে সেভ করা হয়।

6. View (JSP/HTML) তৈরি:

Spring MVC তে ভিউ তৈরি করতে JSP বা Thymeleaf ব্যবহার করা যেতে পারে।

userList.jsp (JSP Example):

<!DOCTYPE html>
<html>
<head>
    <title>User List</title>
</head>
<body>
    <h2>User List</h2>
    <table border="1">
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Email</th>
        </tr>
        <c:forEach var="user" items="${users}">
            <tr>
                <td>${user.id}</td>
                <td>${user.name}</td>
                <td>${user.email}</td>
            </tr>
        </c:forEach>
    </table>
</body>
</html>

Conclusion:

Spring MVC এবং Hibernate/JPA এর ইন্টিগ্রেশন একটি খুব শক্তিশালী ও মডুলার অ্যাপ্লিকেশন তৈরি করতে সহায়ক। এই উদাহরণে, আমরা দেখলাম কীভাবে Spring MVC কন্ট্রোলার এবং Hibernate/JPA ডেটা অ্যাক্সেস লেয়ার ব্যবহার করে একটি ওয়েব অ্যাপ্লিকেশন তৈরি করা যেতে পারে। এছাড়া, JPA Repository ব্যবহারের মাধ্যমে CRUD অপারেশনগুলি খুব সহজভাবে হ্যান্ডল করা যায়, এবং Spring MVC দিয়ে ইউজার ইন্টারফেস তৈরি করা হয়।

Content added By
Promotion

Are you sure to start over?

Loading...