SQL Database থেকে Data Fetch করে Chart তৈরি করা

JFreeChart এবং External Data Integration - জেফ্রিচার্ট (JFreeChart) - Big Data and Analytics

366

JFreeChart লাইব্রেরি ব্যবহার করে আপনি SQL Database থেকে ডেটা এনে তা চার্টে প্রদর্শন করতে পারেন। এটি একটি শক্তিশালী কৌশল যখন আপনার ডেটা ডাটাবেসে থাকে এবং আপনি সেই ডেটাকে গ্রাফিক্যালভাবে উপস্থাপন করতে চান। আপনি JDBC (Java Database Connectivity) ব্যবহার করে SQL ডাটাবেস থেকে ডেটা অ্যাক্সেস করতে পারেন এবং পরে সেই ডেটা JFreeChart এ প্লট করতে পারেন।

এই প্রক্রিয়ার জন্য নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করতে হবে:

  1. JDBC ব্যবহার করে SQL Database থেকে ডেটা ফেচ করা
  2. ডেটা দিয়ে JFreeChart তৈরি করা

1. SQL Database থেকে Data Fetch করা

JDBC ব্যবহার করে SQL ডাটাবেস থেকে ডেটা ফেচ করতে প্রথমে ডাটাবেস কানেকশন তৈরি করতে হবে, তারপর SQL কোয়েরি রান করে ডেটা রিট্রিভ করতে হবে। এখানে একটি উদাহরণ দেওয়া হলো যেখানে আমরা একটি MySQL ডাটাবেস থেকে ডেটা ফেচ করব।

JDBC Database Connection উদাহরণ

import java.sql.*;

public class DatabaseConnection {
    public static Connection connectToDatabase() throws SQLException {
        // MySQL ডাটাবেসে কানেক্ট করা
        String url = "jdbc:mysql://localhost:3306/your_database_name";
        String user = "your_username";
        String password = "your_password";
        
        // ডাটাবেস কানেকশন তৈরি করা
        Connection connection = DriverManager.getConnection(url, user, password);
        return connection;
    }
}

এখানে localhost:3306 হল ডাটাবেসের সার্ভার এবং your_database_name, your_username, এবং your_password আপনার ডাটাবেসের নাম, ইউজারনেম এবং পাসওয়ার্ড অনুযায়ী পরিবর্তন করতে হবে।


2. SQL Query রান করা এবং Data Fetch করা

এখন আমরা JDBC ব্যবহার করে SQL কোয়েরি রান করব এবং সেই ডেটাকে সংগ্রহ করব।

SQL Query এবং Data Fetch উদাহরণ

import java.sql.*;

public class FetchDataFromDatabase {
    public static ResultSet fetchData() throws SQLException {
        Connection connection = DatabaseConnection.connectToDatabase();

        // SQL কোয়েরি লেখা
        String query = "SELECT month, sales FROM sales_data";

        // Statement তৈরি করা
        Statement stmt = connection.createStatement();

        // কোয়েরি রান করা এবং রেজাল্ট সেট রিটার্ন করা
        ResultSet resultSet = stmt.executeQuery(query);
        
        return resultSet;
    }
}

এখানে, sales_data টেবিল থেকে month এবং sales কলাম ফেচ করা হচ্ছে।


3. JFreeChart দিয়ে Data Plot করা

এখন আমরা ফেচ করা ডেটা ব্যবহার করে একটি Bar Chart তৈরি করব।

Data Set তৈরি করা এবং Chart Plot করা

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;

import javax.swing.*;
import java.sql.*;

public class ChartExample {
    public static void main(String[] args) {
        // ডেটাসেট তৈরি করা
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();

        try {
            // SQL ডেটা ফেচ করা
            ResultSet resultSet = FetchDataFromDatabase.fetchData();

            // ডেটা রিডিং
            while (resultSet.next()) {
                String month = resultSet.getString("month");
                int sales = resultSet.getInt("sales");
                
                // ডেটাসেটে যুক্ত করা
                dataset.addValue(sales, "Sales", month);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

        // চার্ট তৈরি করা
        JFreeChart chart = ChartFactory.createBarChart(
                "Monthly Sales", // চার্টের শিরোনাম
                "Month",         // এক্স-অক্ষের নাম
                "Sales",         // ওয়াই-অক্ষের নাম
                dataset,         // ডেটাসেট
                org.jfree.chart.plot.PlotOrientation.VERTICAL, // প্লট অরিয়েন্টেশন
                true,            // লেজেন্ড প্রদর্শন
                true,            // টুলটিপস
                false            // URL সমর্থন
        );

        // চার্ট প্যানেল তৈরি করা
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));

        // JFrame এ চার্ট দেখানো
        JFrame frame = new JFrame();
        frame.setContentPane(chartPanel);
        frame.pack();
        frame.setVisible(true);
    }
}

ব্যাখ্যা:

  1. FetchDataFromDatabase.fetchData() থেকে আমরা ডেটা ফেচ করেছি, যা একটি ResultSet রিটার্ন করে।
  2. ResultSet এর মধ্যে থেকে মাস এবং বিক্রয়ের মান বের করা হয়েছে এবং সেই ডেটা DefaultCategoryDataset এ যোগ করা হয়েছে।
  3. তারপর, সেই ডেটা ব্যবহার করে একটি Bar Chart তৈরি করা হয়েছে।
  4. চার্টটি JFrame এ প্রদর্শন করা হয়েছে।

4. Performance Tuning

যেহেতু SQL Database থেকে বড় ডেটাসেট ফেচ করা হতে পারে, তাই পারফরম্যান্সের দিকে মনোযোগ দেওয়া উচিত। কিছু পরামর্শ:

  1. Lazy Loading: প্রয়োজনে শুধুমাত্র প্রথম কিছু ডেটা লোড করুন, এবং পরবর্তী ডেটা প্রয়োজন হলে লোড করুন।
  2. Batch Processing: বড় ডেটাসেটের ক্ষেত্রে batch processing ব্যবহার করে ডেটা একসাথে ফেচ করার চেষ্টা করুন।
  3. Indexing: ডাটাবেস টেবিলের জন্য সঠিক indexing নিশ্চিত করুন যাতে SQL Query দ্রুত চলে।

সারসংক্ষেপ

JFreeChart এবং JDBC এর মাধ্যমে আপনি SQL ডাটাবেস থেকে ডেটা ফেচ করে Bar Chart, Line Chart, Pie Chart ইত্যাদি তৈরি করতে পারেন। এতে ডেটা ডাটাবেস থেকে অ্যাক্সেস করা হয় এবং তারপর তা চার্টে প্রদর্শন করা হয়। এই কৌশলটি ডেটা ভিজুয়ালাইজেশনে কার্যকরী হতে পারে, বিশেষত যখন ডেটা ডাটাবেসে থাকে এবং আপনাকে সেই ডেটাকে গ্রাফিক্যাল উপস্থাপনা করতে হয়।

Content added By
Promotion

Are you sure to start over?

Loading...