TableView এর মাধ্যমে Database এর Data Binding

JavaFX এবং Database Integration - জাভাএফএক্স (JavaFx) - Java Technologies

312

JavaFX TableView এর মাধ্যমে Database এর ডেটা data binding করার মাধ্যমে আপনি আপনার JavaFX অ্যাপ্লিকেশনে ডেটাবেসের ডেটা খুব সহজভাবে প্রদর্শন করতে পারেন। TableView একটি শক্তিশালী কন্ট্রোল যা সারণী আকারে ডেটা প্রদর্শন করার জন্য ব্যবহৃত হয় এবং data binding এর মাধ্যমে আপনি ডেটাবেসের ডেটা সরাসরি TableView-এ প্রদর্শন করতে পারেন।

এখানে, আমরা JDBC (Java Database Connectivity) ব্যবহার করে ডেটাবেস থেকে ডেটা নিয়ে, সেই ডেটাকে TableView এ প্রদর্শন করব।

ধাপ ১: প্রয়োজনীয় লাইব্রেরি

  • JDBC লাইব্রেরি আপনার প্রকল্পে যুক্ত করা থাকতে হবে। আপনি যদি MySQL ব্যবহার করেন, তবে MySQL JDBC ড্রাইভার ইনস্টল করতে হবে। (যেমন mysql-connector-java জার ফাইল)

ধাপ ২: ডেটাবেস তৈরি এবং ডেটা সন্নিবেশ

আমরা একটি সাধারণ MySQL ডেটাবেস তৈরি করব এবং সেখানে কিছু ডেটা সন্নিবেশ করব।

CREATE DATABASE mydb;

USE mydb;

CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    age INT,
    department VARCHAR(100)
);

INSERT INTO employees (name, age, department) VALUES
('John Doe', 30, 'Engineering'),
('Jane Smith', 25, 'Marketing'),
('Emily Johnson', 35, 'HR');

ধাপ ৩: JavaFX TableView Data Binding Example

এখন, JavaFX অ্যাপ্লিকেশনে TableView ব্যবহার করে ডেটাবেসের ডেটা প্রদর্শন করব।

JavaFX TableView Data Binding Example:

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.stage.Stage;

import java.sql.*;

public class TableViewDatabaseBindingExample extends Application {

    // Employee class to represent data from the database
    public static class Employee {
        private final int id;
        private final String name;
        private final int age;
        private final String department;

        public Employee(int id, String name, int age, String department) {
            this.id = id;
            this.name = name;
            this.age = age;
            this.department = department;
        }

        public int getId() {
            return id;
        }

        public String getName() {
            return name;
        }

        public int getAge() {
            return age;
        }

        public String getDepartment() {
            return department;
        }
    }

    @Override
    public void start(Stage primaryStage) {
        // Create TableView and define columns
        TableView<Employee> tableView = new TableView<>();
        
        TableColumn<Employee, Integer> idColumn = new TableColumn<>("ID");
        idColumn.setCellValueFactory(new PropertyValueFactory<>("id"));

        TableColumn<Employee, String> nameColumn = new TableColumn<>("Name");
        nameColumn.setCellValueFactory(new PropertyValueFactory<>("name"));

        TableColumn<Employee, Integer> ageColumn = new TableColumn<>("Age");
        ageColumn.setCellValueFactory(new PropertyValueFactory<>("age"));

        TableColumn<Employee, String> departmentColumn = new TableColumn<>("Department");
        departmentColumn.setCellValueFactory(new PropertyValueFactory<>("department"));

        tableView.getColumns().addAll(idColumn, nameColumn, ageColumn, departmentColumn);

        // ObservableList to hold data for TableView
        ObservableList<Employee> employees = FXCollections.observableArrayList();

        // JDBC connection and fetch data from the database
        try (Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "password")) {
            String query = "SELECT * FROM employees";
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery(query);

            while (resultSet.next()) {
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                int age = resultSet.getInt("age");
                String department = resultSet.getString("department");

                // Add employee data to the ObservableList
                employees.add(new Employee(id, name, age, department));
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }

        // Set data to the TableView
        tableView.setItems(employees);

        // Create Scene and Stage
        Scene scene = new Scene(tableView, 600, 400);
        primaryStage.setTitle("Database TableView Example");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

ব্যাখ্যা:

  1. Employee Class: একটি Employee ক্লাস তৈরি করা হয়েছে যা ডেটাবেসের ডেটার প্রপার্টি ধারণ করে, যেমন id, name, age, এবং department
  2. TableView এবং TableColumn: TableView এবং তার কলাম তৈরি করা হয়েছে, যেখানে প্রতিটি কলাম একটি নির্দিষ্ট প্রপার্টির জন্য ডেটা শো করবে।
  3. JDBC Connection: Connection এবং Statement ব্যবহার করে ডেটাবেসের ডেটা পড়া হয়েছে।
  4. ObservableList: ObservableList ব্যবহার করা হয়েছে যাতে ডেটা পরিবর্তিত হলে তা TableView-এ অটোমেটিক্যালি আপডেট হয়।
  5. PropertyValueFactory: PropertyValueFactory ক্লাস ব্যবহার করে টেবিল কলামগুলির সাথে ক্লাস প্রপার্টির মান মেলানো হয়েছে।

ডেটাবেস থেকে ডেটা লোড করার বিস্তারিত:

  • ডেটাবেসের সাথে সংযোগ স্থাপন করার জন্য DriverManager.getConnection() ব্যবহার করা হয়েছে, যেখানে ডেটাবেস URL, ইউজার এবং পাসওয়ার্ড দেয়া হয়।
  • SELECT * FROM employees কুয়েরি ব্যবহার করে ডেটাবেস থেকে সমস্ত কর্মচারীর তথ্য সংগ্রহ করা হয়েছে।
  • ResultSet থেকে প্রতিটি কর্মচারীর ডেটা পড়ে Employee অবজেক্ট তৈরি করা হয়েছে এবং সেই অবজেক্টগুলি ObservableList-এ যুক্ত করা হয়েছে।

এটা কীভাবে কাজ করে?:

  • JavaFX TableView ডেটা বিন্যাসের জন্য ObservableList ব্যবহার করে, যেখানে ডেটা পরিবর্তন হলে তা তৎক্ষণাত TableView-এ প্রদর্শিত হয়।
  • ডেটাবেস থেকে ডেটা সংগ্রহ করে, তা JavaFX TableView-এ প্রদর্শন করা হয় এবং ইউজার তা দেখতে পারে।

সারাংশ:

  • JavaFX TableView ব্যবহার করে আপনি ডেটাবেসের ডেটা সহজে ডিসপ্লে করতে পারেন। Data Binding এর মাধ্যমে ObservableList ব্যবহার করে ডেটাবেসের ডেটা TableView এর সাথে সংযুক্ত করা হয়, এবং যে কোন পরিবর্তন TableView-এ রিয়েল-টাইমে আপডেট হয়ে থাকে।
  • JDBC ব্যবহার করে ডেটাবেস থেকে ডেটা লোড করা হয় এবং সেই ডেটা TableView এর মাধ্যমে প্রদর্শিত হয়।
Content added By
Promotion

Are you sure to start over?

Loading...