Data Access এবং Data Manipulation

Struts 2 এর Value Stack এবং OGNL - স্ট্রাটস (Struts 2) - Java Technologies

316

Struts 2 একটি শক্তিশালী MVC ফ্রেমওয়ার্ক যা Web applications তৈরি করতে ব্যবহৃত হয়। এটি ডেটা অ্যাক্সেস এবং ডেটা ম্যানিপুলেশন করার জন্য অনেক ধরনের টুল এবং প্রযুক্তি সমর্থন করে। Struts 2 তে ডেটা অ্যাক্সেস এবং ম্যানিপুলেশন সাধারণত DAO (Data Access Object) প্যাটার্ন এবং Hibernate, JDBC, বা JPA এর মাধ্যমে করা হয়।

Struts 2 তে Data Access এবং Data Manipulation এর পদ্ধতি

Struts 2 তে ডেটা অ্যাক্সেস এবং ডেটা ম্যানিপুলেশন করার জন্য অনেক রকম পদ্ধতি আছে। এটি সাধারণত Service Layer, DAO Layer, এবং Action Class ব্যবহার করে করা হয়।


1. DAO (Data Access Object) Pattern

DAO Pattern ব্যবহার করা হয় ডেটাবেসের সাথে যোগাযোগ করার জন্য। DAO প্যাটার্নটি ডেটা অ্যাক্সেস কোডকে অ্যাপ্লিকেশনের ব্যবসায়িক লজিক থেকে আলাদা করে। এটি ডেটাবেস অপারেশনগুলি (যেমন ইনসার্ট, আপডেট, ডিলিট, এবং সিলেক্ট) আলাদা ক্লাসে রেখে অ্যাপ্লিকেশনের রক্ষণাবেক্ষণ সহজ করে তোলে।

DAO ক্লাস উদাহরণ:

public class UserDAO {
    private SessionFactory sessionFactory;

    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

    public void saveUser(User user) {
        Session session = sessionFactory.getCurrentSession();
        session.save(user);
    }

    public User getUserById(int id) {
        Session session = sessionFactory.getCurrentSession();
        return session.get(User.class, id);
    }

    public void deleteUser(int id) {
        Session session = sessionFactory.getCurrentSession();
        User user = session.get(User.class, id);
        if (user != null) {
            session.delete(user);
        }
    }

    // Additional methods for update, select, etc.
}

ব্যাখ্যা:

  • UserDAO ক্লাস ডেটাবেসে ব্যবহারকারীর তথ্য Hibernate এর মাধ্যমে অ্যাক্সেস এবং ম্যানিপুলেশন করতে ব্যবহৃত হয়।
  • saveUser(), getUserById(), এবং deleteUser() মেথডগুলি ডেটাবেস অপারেশনগুলোর জন্য ব্যবহৃত হয়।

2. Service Layer

Service Layer হল একটি লেয়ার যেখানে ব্যাবসায়িক লজিক বা ডেটা প্রক্রিয়াকরণ হয়। এটি DAO-র সাথে যোগাযোগ করে ডেটা প্রক্রিয়া করে এবং Struts 2 অ্যাকশনে ডেটা প্রেরণ করে।

Service Layer উদাহরণ:

public class UserService {
    private UserDAO userDAO;

    public void setUserDAO(UserDAO userDAO) {
        this.userDAO = userDAO;
    }

    public void addUser(User user) {
        userDAO.saveUser(user);
    }

    public User getUser(int id) {
        return userDAO.getUserById(id);
    }

    public void removeUser(int id) {
        userDAO.deleteUser(id);
    }
}

ব্যাখ্যা:

  • UserService ক্লাস UserDAO এর মাধ্যমে ডেটাবেসের সাথে যোগাযোগ করে এবং Action Class এ প্রয়োজনীয় ডেটা সরবরাহ করে।

3. Struts 2 Action Class

Struts 2 Action Class ব্যবহারকারী থেকে ইনপুট নেয় এবং Service Layer ব্যবহার করে ডেটাবেসের সাথে যোগাযোগ করে। Action Class সাধারণত Model হিসেবে কাজ করে এবং তার আউটপুট View (JSP) এ দেখানো হয়।

Action Class উদাহরণ:

public class UserAction extends ActionSupport {
    private UserService userService;
    private User user;
    private int id;

    public String execute() {
        user = userService.getUser(id);
        return SUCCESS;
    }

    public String saveUser() {
        userService.addUser(user);
        return SUCCESS;
    }

    public String deleteUser() {
        userService.removeUser(id);
        return SUCCESS;
    }

    // Getter and Setter methods for user and id
}

ব্যাখ্যা:

  • UserAction ক্লাসে userService এর মাধ্যমে ডেটাবেসে save, select, এবং delete অপারেশন করা হচ্ছে।
  • execute() মেথড ডেটা রিট্রিভ করার জন্য ব্যবহৃত, এবং saveUser()deleteUser() মেথডগুলো ডেটা ম্যানিপুলেশন (ইনসার্ট, ডিলিট) করার জন্য।

4. JSP (View Layer)

Struts 2 তে JSP (Java Server Pages) View Layer হিসেবে কাজ করে যেখানে ডেটা উপস্থাপন করা হয়। Struts 2 ট্যাগ লাইব্রেরি ব্যবহারের মাধ্যমে আপনি ফর্ম এবং অন্যান্য ডেটা উপস্থাপন করতে পারেন।

JSP উদাহরণ:

<s:form action="saveUser">
    <s:textfield name="user.name" label="User Name"/>
    <s:textfield name="user.email" label="User Email"/>
    <s:submit value="Save"/>
</s:form>

<s:form action="deleteUser">
    <s:textfield name="id" label="User ID"/>
    <s:submit value="Delete"/>
</s:form>

ব্যাখ্যা:

  • এখানে Struts 2 ট্যাগ ব্যবহার করে form তৈরি করা হয়েছে, যা Action Class এ ইনপুট পাঠায়।
  • s:form ট্যাগের মাধ্যমে ডেটা ইনপুট ফর্মে পাঠানো হয় এবং Action Class সেই ডেটার উপর প্রয়োজনীয় অপারেশন (Save বা Delete) করে।

5. Hibernate Integration for Data Access

Struts 2 এবং Hibernate একসাথে ব্যবহার করে ডেটা অ্যাক্সেস করা যেতে পারে। Hibernate ORM (Object Relational Mapping) ব্যবহারের মাধ্যমে ডেটাবেসের সঙ্গে অবজেক্ট মডেল ম্যাপিং করে ডেটা অ্যাক্সেস করা সহজ হয়।

Hibernate Configuration উদাহরণ:

hibernate.cfg.xml ফাইল:

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/mydb</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">password</property>
        <property name="hibernate.show_sql">true</property>
    </session-factory>
</hibernate-configuration>

সারাংশ

Struts 2 অ্যাপ্লিকেশন তৈরি করার সময় Data Access এবং Data Manipulation অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে। Struts 2 তে সাধারণত DAO Pattern, Service Layer, Action Class, এবং Hibernate/JDBC ব্যবহার করে ডেটা অ্যাক্সেস এবং ম্যানিপুলেশন করা হয়। এর মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনকে স্কেলেবল এবং রক্ষণাবেক্ষণযোগ্য রাখতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...