BeanUtils এর মাধ্যমে Nested Bean এর Data Transfer

Nested Beans Handling (নেস্টেড বিন হ্যান্ডলিং) - জাভা বীনইউটিলস (Java BeanUtils) - Computer Programming

409

Apache Commons BeanUtils লাইব্রেরি ব্যবহার করে আপনি সহজেই একটি Bean-এর মধ্যে থাকা Nested Bean এর ডেটা কপি বা ট্রান্সফার করতে পারেন। BeanUtils নেস্টেড প্রপার্টি হ্যান্ডল করার জন্য খুবই কার্যকর। এটি আপনাকে একটি Object-এর Nested Properties কপি বা ম্যানিপুলেট করার সুবিধা দেয়।


কাজের ধাপ

  1. Nested Bean তৈরি করা: একটি Bean-এর প্রপার্টি হিসেবে আরেকটি Bean যুক্ত করা।
  2. BeanUtils.copyProperties() ব্যবহার: Parent Bean থেকে Target Bean-এ ডেটা ট্রান্সফার করা।
  3. Nested Properties Access এবং Manipulation: Nested প্রপার্টির ডেটা Access এবং পরিবর্তন করা।

উদাহরণ: Nested Bean এর Data Transfer

১. Bean তৈরি করা

public class Person {
    private String name;
    private int age;
    private Address address;

    public Person() {}

    public Person(String name, int age, Address address) {
        this.name = name;
        this.age = age;
        this.address = address;
    }

    // Getter and Setter Methods
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }
}

class Address {
    private String street;
    private String city;

    public Address() {}

    public Address(String street, String city) {
        this.street = street;
        this.city = city;
    }

    // Getter and Setter Methods
    public String getStreet() {
        return street;
    }

    public void setStreet(String street) {
        this.street = street;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }
}

২. Nested Bean এর Data Transfer করা

import org.apache.commons.beanutils.BeanUtils;

public class NestedBeanExample {
    public static void main(String[] args) {
        try {
            // Source Bean
            Address address = new Address("123 Main St", "City A");
            Person sourcePerson = new Person("John Doe", 25, address);

            // Target Bean
            Person targetPerson = new Person();

            // Copy properties from source to target
            BeanUtils.copyProperties(targetPerson, sourcePerson);

            // Output the copied properties
            System.out.println("Target Name: " + targetPerson.getName());
            System.out.println("Target Age: " + targetPerson.getAge());
            System.out.println("Target Street: " + targetPerson.getAddress().getStreet());
            System.out.println("Target City: " + targetPerson.getAddress().getCity());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

আউটপুট:

Target Name: John Doe
Target Age: 25
Target Street: 123 Main St
Target City: City A

ব্যাখ্যা:

  1. Source Bean তৈরি করা: sourcePerson-এর মধ্যে Address একটি Nested Bean হিসেবে যুক্ত।
  2. BeanUtils.copyProperties(): এই মেথড Parent Bean (sourcePerson) থেকে Target Bean (targetPerson)-এ ডেটা কপি করে।
  3. Nested Properties কপি: sourcePerson Bean এর address প্রপার্টির street এবং city ভ্যালু targetPerson-এ কপি করা হয়েছে।

Nested Properties Access এবং Manipulation

BeanUtils ব্যবহার করে আপনি Nested Properties সরাসরি Access এবং Manipulate করতে পারেন। এর জন্য PropertyUtils ব্যবহার করা যায়।

Nested Properties Access করা

import org.apache.commons.beanutils.PropertyUtils;

public class NestedPropertyAccessExample {
    public static void main(String[] args) {
        try {
            // Create Source Bean
            Address address = new Address("456 Elm St", "City B");
            Person person = new Person("Jane Doe", 30, address);

            // Access Nested Properties
            String street = (String) PropertyUtils.getNestedProperty(person, "address.street");
            String city = (String) PropertyUtils.getNestedProperty(person, "address.city");

            // Modify Nested Properties
            PropertyUtils.setNestedProperty(person, "address.street", "789 Pine St");

            // Output the updated properties
            System.out.println("Street: " + street);                  // Output: 456 Elm St
            System.out.println("City: " + city);                      // Output: City B
            System.out.println("Updated Street: " + person.getAddress().getStreet()); // Output: 789 Pine St
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

আউটপুট:

Street: 456 Elm St
City: City B
Updated Street: 789 Pine St

PropertyUtils এবং BeanUtils এর পার্থক্য

বৈশিষ্ট্যBeanUtilsPropertyUtils
টাইপ কনভার্সনটাইপ কনভার্সন সাপোর্ট করে।টাইপ কনভার্সন সাপোর্ট করে না।
Nested Properties Accessসরাসরি Nested Properties অ্যাক্সেস করা যায় না।সরাসরি Nested Properties অ্যাক্সেস এবং পরিবর্তন করা যায়।
ব্যবহারপ্রপার্টি কপি করার জন্য বেশি কার্যকর।প্রপার্টি অ্যাক্সেস এবং ম্যানিপুলেশন।

সারাংশ

  • BeanUtils.copyProperties() Nested Bean থেকে Parent Bean-এ ডেটা কপি করার জন্য ব্যবহার করা হয়।
  • PropertyUtils Nested Properties সরাসরি Access এবং Manipulate করার জন্য বেশি কার্যকর।
  • Nested Bean এর ডেটা ট্রান্সফার এবং ম্যানিপুলেশনের জন্য BeanUtils এবং PropertyUtils উভয়ই গুরুত্বপূর্ণ টুল। আপনার কাজের ধরণ অনুযায়ী এগুলোর ব্যবহার নির্বাচন করুন।
Content added || updated By
Promotion

Are you sure to start over?

Loading...