Struts 2 এবং Hibernate Integration কনফিগার করা

Struts 2 এবং Hibernate Integration - স্ট্রাটস (Struts 2) - Java Technologies

327

Struts 2 এবং Hibernate দুটি শক্তিশালী ফ্রেমওয়ার্ক। Struts 2 হল একটি ওয়েব অ্যাপ্লিকেশন ফ্রেমওয়ার্ক এবং Hibernate হল একটি ORM (Object-Relational Mapping) ফ্রেমওয়ার্ক যা ডাটাবেসের সাথে সম্পর্কিত কাজগুলো সহজ করে তোলে। যখন আপনি Struts 2 এবং Hibernate একত্রে ব্যবহার করেন, তখন আপনি একটি শক্তিশালী, স্কেলেবল এবং ডেটাবেস ড্রিভেন ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন। এই ইন্টিগ্রেশনের মাধ্যমে আপনি ফ্রন্টএন্ড (Struts 2) এবং ব্যাকএন্ড (Hibernate) সহজভাবে সংযুক্ত করতে পারবেন।

Struts 2 এবং Hibernate Integration এর জন্য প্রয়োজনীয় পদক্ষেপ

  1. Maven Dependencies যোগ করা
  2. Hibernate কনফিগারেশন করা
  3. Struts 2 Action ক্লাস তৈরি করা
  4. struts.xml কনফিগারেশন
  5. JSP পেজ তৈরি করা

১. Maven Dependencies যোগ করা

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

<dependencies>
    <!-- Struts 2 Dependencies -->
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-core</artifactId>
        <version>2.5.20</version>
    </dependency>

    <!-- Hibernate Dependencies -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.4.30.Final</version>
    </dependency>

    <!-- Hibernate Validator -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>6.0.13.Final</version>
    </dependency>

    <!-- JDBC Driver -->
    <dependency>
        <groupId>org.hsqldb</groupId>
        <artifactId>hsqldb</artifactId>
        <version>2.5.1</version>
    </dependency>
</dependencies>

এখানে, Struts 2 এবং Hibernate এর প্রয়োজনীয় ডিপেনডেন্সি যোগ করা হয়েছে।


২. Hibernate কনফিগারেশন করা

Hibernate কনফিগারেশন ফাইলের মাধ্যমে ডেটাবেসের সাথে কানেকশন পরিচালনা করা হয়। সাধারণত hibernate.cfg.xml ফাইলে এটি কনফিগার করা হয়।

hibernate.cfg.xml:

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- JDBC Database connection settings -->
        <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
        <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
        <property name="hibernate.connection.url">jdbc:hsqldb:mem:testdb</property>
        <property name="hibernate.connection.username">sa</property>
        <property name="hibernate.connection.password"></property>

        <!-- JDBC connection pool settings -->
        <property name="hibernate.c3p0.min_size">5</property>
        <property name="hibernate.c3p0.max_size">20</property>

        <!-- Specify dialect -->
        <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="hibernate.current_session_context_class">thread</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="hibernate.show_sql">true</property>

        <!-- Drop and re-create the database schema on startup -->
        <property name="hibernate.hbm2ddl.auto">update</property>

        <!-- Disable the second-level cache -->
        <property name="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
    </session-factory>
</hibernate-configuration>

এখানে, হাইবারনেটের JDBC কানেকশন সেটিংস, ডায়ালেক্ট, সেশন কনফিগারেশন এবং hibernate.hbm2ddl.auto সেট করা হয়েছে। আপনি আপনার ডাটাবেসের অ্যাক্সেস ডিটেইলস এখানে কনফিগার করবেন।


৩. Action ক্লাস তৈরি করা

Struts 2 অ্যাপ্লিকেশনগুলিতে Action ক্লাস ব্যবহার করে ব্যবসায়িক লজিক পরিচালনা করা হয়। Hibernate ব্যবহার করে ডেটা পরিচালনা করার জন্য Session ব্যবহার করা হয়।

UserAction.java (Action ক্লাস):

package com.example;

import com.opensymphony.xwork2.ActionSupport;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class UserAction extends ActionSupport {
    private String name;
    private String email;

    public String execute() {
        // Hibernate session factory তৈরি করা
        SessionFactory factory = new Configuration().configure("hibernate.cfg.xml")
                .addAnnotatedClass(User.class)
                .buildSessionFactory();

        // Hibernate session তৈরি
        Session session = factory.getCurrentSession();

        try {
            // নতুন User তৈরি করা
            User user = new User(name, email);

            // ট্রানজেকশন শুরু করা
            session.beginTransaction();

            // ডেটাবেসে ইউজার সেভ করা
            session.save(user);

            // ট্রানজেকশন কমিট করা
            session.getTransaction().commit();
        } finally {
            factory.close();
        }
        return SUCCESS;
    }

    // Getter and Setter Methods
    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;
    }
}

ব্যাখ্যা:

  • এখানে SessionFactory এবং Session ব্যবহার করে Hibernate এর মাধ্যমে ডেটা ডেভেলপমেন্ট করা হয়েছে।
  • User নামে একটি ক্লাস ব্যবহার করে একটি নতুন User অবজেক্ট তৈরি করা হয়েছে এবং তারপর ডেটাবেসে সেভ করা হয়েছে।

৪. User Model Class তৈরি করা

User.java (Model Class):

package com.example;

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

@Entity
public class User {
    @Id
    private int id;
    private String name;
    private String email;

    public User() {}

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

    // Getter and Setter Methods
    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 এনোটেশন ব্যবহার করা হয়েছে যা Hibernate কে জানায় যে এটি একটি টেবিলকে রিপ্রেজেন্ট করে।
  • @Id এনোটেশন ব্যবহার করা হয়েছে, যা Hibernate কে জানায় যে এটি টেবিলের প্রাইমারি কী।

৫. struts.xml কনফিগারেশন

struts.xml ফাইলটি অ্যাকশন এবং ভিউ রেজাল্টের জন্য কনফিগার করা হয়।

<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="registerUser" class="com.example.UserAction">
            <result>/success.jsp</result>
        </action>
    </package>
</struts>

ব্যাখ্যা:

  • name="registerUser": ইউজার যখন /registerUser URL এক্সেস করবে, তখন UserAction ক্লাসের execute() মেথড কল হবে।
  • /success.jsp: SUCCESS রিটার্ন হলে success.jsp পৃষ্ঠা রেন্ডার হবে।

৬. JSP পৃষ্ঠা তৈরি করা

registerUser.jsp (ফর্ম):

<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
    <body>
        <h2>User Registration</h2>
        <s:form action="registerUser">
            <s:textfield name="name" label="Name" />
            <s:textfield name="email" label="Email" />
            <s:submit value="Register" />
        </s:form>
    </body>
</html>

success.jsp (সাফল্য পৃষ্ঠা):

<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
    <body>
        <h2>User Registered Successfully!</h2>
    </body>
</html>

সারাংশ

Struts 2 এবং Hibernate Integration হল একটি শক্তিশালী কম্বিনেশন যা আপনাকে MVC (Model-View-Controller) আর্কিটেকচারের মাধ্যমে Hibernate ORM ব্যবহার করে ডেটাবেসের সাথে কাজ করার সুবিধা দেয়। এখানে, Action ক্লাস ব্যবহার করে ডেটাবেসে ডেটা সেভ করা হয় এবং JSP পৃষ্ঠার মাধ্যমে ভিউ প্রদর্শিত হয়। Struts 2 ফ্রেমওয়ার্কে Hibernate কনফিগারেশন, Action ক্লাস, এবং struts.xml কনফিগারেশন করার মাধ্যমে সহজেই ডেটাবেস অপারেশন করা সম্ভব।

Content added By
Promotion

Are you sure to start over?

Loading...