Entity Bean এর মাধ্যমে ডেটাবেস CRUD অপারেশন

JSF এবং Database Integration (JPA) - জেএসএফ (JSF) - Web Development

181

JSF (JavaServer Faces) একটি কম্পোনেন্ট-ভিত্তিক ফ্রেমওয়ার্ক যা Java EE অ্যাপ্লিকেশনগুলিতে ডেটাবেস অপারেশন সম্পাদন করার জন্য Entity Beans এবং JPA (Java Persistence API) ব্যবহার করতে সক্ষম। CRUD (Create, Read, Update, Delete) অপারেশনগুলি ডেটাবেসে ডেটা ম্যানিপুলেট করতে ব্যবহৃত হয় এবং JSF অ্যাপ্লিকেশনগুলিতে এটি Entity Beans-এর মাধ্যমে করা যেতে পারে।

এখানে, আমরা Entity Beans এবং JPA ব্যবহার করে ডেটাবেসে CRUD অপারেশন সম্পাদন করার প্রক্রিয়া আলোচনা করব।

Entity Bean এবং JPA পরিচিতি


Entity Bean হল একটি Java ক্লাস, যা একটি ডেটাবেস টেবিলের সাথে মেপিং করা থাকে এবং এটি ডেটাবেসে রেকর্ড সংরক্ষণ এবং পুনরুদ্ধার করতে ব্যবহৃত হয়। JPA (Java Persistence API) একটি স্ট্যান্ডার্ড API যা Java অ্যাপ্লিকেশনগুলিতে ডেটাবেস সংযোগ এবং ডেটা ম্যানিপুলেশন করার জন্য ব্যবহৃত হয়।

JPA Entity Beans একটি ডেটাবেস টেবিলের প্রতিরূপ (representation) হিসেবে কাজ করে এবং ডেটাবেসের রেকর্ডগুলির সাথে সংযুক্ত থাকে। এটি ORM (Object-Relational Mapping) প্রযুক্তির মাধ্যমে ডেটাবেস অপারেশন সরল করে।

Entity Bean তৈরি করা


প্রথমে, আমাদের একটি Entity Bean তৈরি করতে হবে, যা JPA দ্বারা ডেটাবেস টেবিলের সাথে মেপিং হবে। এটি একটি Java ক্লাস হবে, যার মধ্যে @Entity অ্যানোটেশন থাকবে এবং ডেটাবেস টেবিলের জন্য কনফিগারেশন থাকবে।

Entity Bean উদাহরণ: Product

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

@Entity
public class Product {

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

    // Getter and Setter methods
    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 double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }
}

এখানে:

  • @Entity: এটি JPA Entity Bean কে চিহ্নিত করে।
  • @Id: এটি Entity এর প্রাথমিক কী (primary key) চিহ্নিত করে।
  • @GeneratedValue: এটি ডেটাবেসে প্রাথমিক কী স্বয়ংক্রিয়ভাবে সৃষ্টির জন্য ব্যবহৃত হয়।

CRUD অপারেশন (Create, Read, Update, Delete)


এখন, আমরা Entity Bean Product ব্যবহার করে CRUD অপারেশন সম্পাদন করব।

১. Create (ডেটা তৈরি)

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@ManagedBean
@RequestScoped
public class ProductBean {

    @PersistenceContext
    private EntityManager entityManager;

    private Product product = new Product();

    // Getter and Setter for product
    public Product getProduct() {
        return product;
    }

    public void setProduct(Product product) {
        this.product = product;
    }

    // Create operation
    public String create() {
        entityManager.persist(product); // Save product to database
        return "productList"; // Navigate to product list page after successful creation
    }
}

এখানে:

  • entityManager.persist(product): এটি নতুন Product অবজেক্টকে ডেটাবেসে সংরক্ষণ করে।

২. Read (ডেটা পড়া)

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean
@SessionScoped
public class ProductBean {

    @PersistenceContext
    private EntityManager entityManager;

    private Long productId;

    // Getter and Setter for productId
    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    // Retrieve product by ID
    public Product getProductById() {
        return entityManager.find(Product.class, productId); // Find product by ID
    }
}

এখানে:

  • entityManager.find(Product.class, productId): এটি ডেটাবেস থেকে নির্দিষ্ট productId এর সাথে সঙ্গতিপূর্ণ Product অবজেক্টটি খুঁজে বের করে।

৩. Update (ডেটা আপডেট)

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@ManagedBean
@RequestScoped
public class ProductBean {

    @PersistenceContext
    private EntityManager entityManager;

    private Product product;

    // Getter and Setter for product
    public Product getProduct() {
        return product;
    }

    public void setProduct(Product product) {
        this.product = product;
    }

    // Update operation
    public String update() {
        entityManager.merge(product); // Update product in database
        return "productList"; // Navigate to product list page after successful update
    }
}

এখানে:

  • entityManager.merge(product): এটি ডেটাবেসে বিদ্যমান Product অবজেক্টটি আপডেট করে।

৪. Delete (ডেটা মুছে ফেলা)

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@ManagedBean
@RequestScoped
public class ProductBean {

    @PersistenceContext
    private EntityManager entityManager;

    private Long productId;

    // Getter and Setter for productId
    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    // Delete operation
    public String delete() {
        Product productToDelete = entityManager.find(Product.class, productId);
        if (productToDelete != null) {
            entityManager.remove(productToDelete); // Delete product from database
        }
        return "productList"; // Navigate to product list page after successful deletion
    }
}

এখানে:

  • entityManager.remove(productToDelete): এটি ডেটাবেস থেকে Product অবজেক্টটি মুছে ফেলে।

JSF পেজের মাধ্যমে CRUD অপারেশন


Product Creation (Create)

<h:form>
    <h:outputLabel for="name" value="Product Name" />
    <h:inputText id="name" value="#{productBean.product.name}" />

    <h:outputLabel for="price" value="Price" />
    <h:inputText id="price" value="#{productBean.product.price}" />

    <h:commandButton value="Create Product" action="#{productBean.create}" />
</h:form>

Product Read (Read)

<h:form>
    <h:outputLabel for="productId" value="Enter Product ID" />
    <h:inputText id="productId" value="#{productBean.productId}" />

    <h:commandButton value="Fetch Product" action="#{productBean.getProductById}" />

    <h:outputText value="#{productBean.product.name}" rendered="#{not empty productBean.product}" />
    <h:outputText value="#{productBean.product.price}" rendered="#{not empty productBean.product}" />
</h:form>

Product Update (Update)

<h:form>
    <h:outputLabel for="productId" value="Product ID" />
    <h:inputText id="productId" value="#{productBean.productId}" />

    <h:outputLabel for="name" value="Product Name" />
    <h:inputText id="name" value="#{productBean.product.name}" />

    <h:outputLabel for="price" value="Price" />
    <h:inputText id="price" value="#{productBean.product.price}" />

    <h:commandButton value="Update Product" action="#{productBean.update}" />
</h:form>

Product Delete (Delete)

<h:form>
    <h:outputLabel for="productId" value="Enter Product ID to delete" />
    <h:inputText id="productId" value="#{productBean.productId}" />

    <h:commandButton value="Delete Product" action="#{productBean.delete}" />
</h:form>

সারাংশ


JSF এবং JPA Entity Beans ব্যবহার করে ডেটাবেসে CRUD অপারেশন সম্পাদন করা সহজ এবং কার্যকরী। JSF ফ্রেমওয়ার্কের মাধ্যমে আপনি Managed Beans ব্যবহার করে ডেটা ম্যানিপুলেট করতে পারেন এবং JPA Entity Beans-এর মাধ্যমে ডেটাবেস টেবিলের সাথে সংযুক্ত ডেটা CRUD অপারেশন করতে পারেন। Entity Beans ব্যবহারের মাধ্যমে ডেটাবেসের রেকর্ড তৈরি, পড়া, আপডেট এবং মুছতে সাহায্য করে, যা JSF অ্যাপ্লিকেশনে ডেটাবেস ইন্টিগ্রেশনকে সহজ করে।

Content added By
Promotion

Are you sure to start over?

Loading...