উদাহরণ সহ Struts 2 এবং Hibernate Integration

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

292

Struts 2 এবং Hibernate দুটি জনপ্রিয় Java ফ্রেমওয়ার্ক। Struts 2 হল একটি ওয়েব অ্যাপ্লিকেশন ফ্রেমওয়ার্ক যা MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে, এবং Hibernate হল একটি Object-Relational Mapping (ORM) ফ্রেমওয়ার্ক যা ডেটাবেসের সাথে কাজ করার জন্য ব্যবহৃত হয়। Struts 2 এবং Hibernate একসাথে ব্যবহৃত হলে, আপনি খুব সহজে ডেটাবেস অপারেশন (যেমন ইনসার্ট, আপডেট, ডিলিট) পরিচালনা করতে পারেন, সেই সঙ্গে অ্যাপ্লিকেশনের লজিক ও ভিউ স্তরের কাজ আলাদা করতে পারেন।

এই টিউটোরিয়ালে আমরা Struts 2 এবং Hibernate এর ইন্টিগ্রেশন দেখাবো, যেখানে Struts 2 ব্যবহারকারী ইনপুট নেবে এবং সেই ইনপুট Hibernate ব্যবহার করে ডেটাবেসে সেভ করবে।


Struts 2 এবং Hibernate Integration এর স্টেপস

1. 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.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/your_database</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">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.MySQLDialect</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>

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

        <!-- Enable Hibernate second level cache -->
        <property name="hibernate.cache.use_second_level_cache">true</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
    </session-factory>
</hibernate-configuration>

এই ফাইলে, Hibernate ডেটাবেসের সাথে সংযোগ করার জন্য প্রয়োজনীয় কনফিগারেশন এবং ড্রাইভার তথ্য দেওয়া হয়।


2. Hibernate Entity Class তৈরি করা

Hibernate এ ডেটাবেস টেবিলের সাথে সম্পর্কিত ক্লাস তৈরি করতে হয়। এটি @Entity অ্যানোটেশন দিয়ে চিহ্নিত করা হয় এবং এতে @Id ব্যবহার করা হয় যাতে Hibernate বুঝতে পারে কোন ফিল্ডটি প্রাইমারি কি।

User.java (Entity Class)

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

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

    // Getter and Setter Methods
    public int getId() {
        return id;
    }

    public void setId(int 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;
    }
}

এই ক্লাসটি User নামক একটি Entity তৈরি করছে, যা ডেটাবেসে একটি User টেবিলের সাথে সম্পর্কিত।


3. Hibernate DAO (Data Access Object) তৈরি করা

Hibernate ব্যবহার করে ডেটাবেস অপারেশন পরিচালনা করতে DAO ক্লাস তৈরি করা হয়। এই ক্লাসটি ডেটাবেসে ইনপুট সেভ, আপডেট, ডিলিট ইত্যাদি অপারেশন সম্পাদন করবে।

UserDao.java (DAO Class)

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class UserDao {

    private static SessionFactory factory;

    static {
        factory = new Configuration().configure("hibernate.cfg.xml").addAnnotatedClass(User.class).buildSessionFactory();
    }

    public void saveUser(User user) {
        Session session = factory.getCurrentSession();
        try {
            session.beginTransaction();
            session.save(user);
            session.getTransaction().commit();
        } finally {
            factory.close();
        }
    }
}

এখানে, saveUser() মেথডটি একটি User অবজেক্ট গ্রহণ করে এবং সেটি ডেটাবেসে সেভ করে।


4. Struts 2 Action Class তৈরি করা

এখন, Struts 2 অ্যাকশন ক্লাস তৈরি করতে হবে, যা ফর্ম থেকে ডেটা গ্রহণ করবে এবং UserDao এর মাধ্যমে সেই ডেটা ডেটাবেসে সেভ করবে।

UserAction.java (Struts 2 Action Class)

import com.opensymphony.xwork2.ActionSupport;

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

    // Getter and Setter
    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    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;
    }

    public String execute() {
        user = new User();
        user.setName(name);
        user.setEmail(email);
        
        UserDao dao = new UserDao();
        dao.saveUser(user);
        
        return SUCCESS;
    }
}

এখানে, UserAction ক্লাস ফর্ম থেকে name এবং email গ্রহণ করে এবং UserDao ব্যবহার করে ডেটাবেসে সেভ করে।


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

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

struts.xml

<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="userSave" class="com.example.UserAction">
            <result name="success">/WEB-INF/content/success.jsp</result>
            <result name="input">/WEB-INF/content/input.jsp</result>
        </action>
    </package>
</struts>

এখানে, userSave অ্যাকশনটি UserAction ক্লাসের সাথে যুক্ত, এবং সফল হলে success.jsp এবং ইনপুট হলে input.jsp রিডিরেক্ট হবে।


6. JSP পেজ তৈরি করা

JSP পেজ তৈরি করতে হবে, যেখানে ব্যবহারকারী তাদের ইনপুট প্রদান করবে এবং সেই ইনপুট Struts 2 অ্যাকশনের মাধ্যমে ডেটাবেসে সেভ হবে।

input.jsp (ফর্ম)

<html>
<body>
    <h1>Enter User Information</h1>
    <s:form action="userSave" method="post">
        <s:textfield label="Name" name="name"/>
        <s:textfield label="Email" name="email"/>
        <s:submit value="Save"/>
    </s:form>
</body>
</html>

এখানে, <s:form> ট্যাগ ব্যবহার করা হয়েছে, যাতে ব্যবহারকারী name এবং email ইনপুট করতে পারেন।

success.jsp (সাফল্য পেজ)

<html>
<body>
    <h1>User saved successfully!</h1>
</body>
</html>

এটি একটি সাফল্য পেজ, যা ফাইলটি সেভ হওয়ার পরে প্রদর্শিত হবে।


উপসংহার

Struts 2 এবং Hibernate Integration খুবই কার্যকরী একটি পদ্ধতি, যা আপনাকে MVC আর্কিটেকচারে ডেটাবেস অপারেশন সম্পাদন করতে সহায়তা করে। Struts 2 অ্যাকশন ক্লাসের মাধ্যমে ব্যবহারকারীর ইনপুট গ্রহণ করা হয় এবং Hibernate ব্যবহার করে ডেটাবেসে সেই ডেটা সেভ করা হয়। Hibernate ORM ব্যবহারের মাধ্যমে আপনি সহজে জাভা অবজেক্টের সাথে ডেটাবেস টেবিল ম্যাপিং করতে পারেন, এবং Struts 2 এর মাধ্যমে আপনার অ্যাপ্লিকেশনের লজিক এবং ভিউ আলাদা রাখতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...