উদাহরণ সহ JDBC এর সাথে XML এবং JSON Integration

JDBC এবং XML/JSON Integration - জেডিবিসি (JDBC) - Java Technologies

294

JDBC (Java Database Connectivity) ব্যবহার করে ডেটাবেসে ডেটা সংরক্ষণ এবং রিট্রাইভ করার সময় আমরা XML এবং JSON ডেটা ফরম্যাট ব্যবহৃত হতে পারে। XML এবং JSON হল ডেটার স্ট্যান্ডার্ড ফরম্যাট যা সাধারণত ডেটা এক্সচেঞ্জের জন্য ব্যবহৃত হয় এবং বিভিন্ন অ্যাপ্লিকেশন ও সিস্টেমের মধ্যে ডেটা প্রেরণ করা সহজ করে।

এই গাইডে আমরা দেখব JDBC এর মাধ্যমে XML এবং JSON ডেটা ডেটাবেসে সংরক্ষণ এবং রিট্রাইভ করার উদাহরণ।


1. JDBC এর সাথে XML Integration

XML (Extensible Markup Language) ডেটা একটি স্ট্রাকচারড ফরম্যাট যা ব্যবহারকারীদের ডেটা সহজে সংরক্ষণ এবং এক্সচেঞ্জ করার সুযোগ দেয়। JDBC-এ XML ডেটা সংরক্ষণ ও রিট্রাইভ করার জন্য আমরা CLOB (Character Large Object) বা BLOB (Binary Large Object) ডেটাটাইপ ব্যবহার করতে পারি, যাতে XML ডেটার বড় সাইজের স্টোরেজ সম্ভব হয়।

XML ডেটা ডেটাবেসে সংরক্ষণ এবং রিট্রাইভ করা

1.1 XML ডেটা সংরক্ষণ

XML ডেটা সংরক্ষণের জন্য, আমরা CLOB টাইপ ব্যবহার করি, যা বড় টেক্সট ডেটা ধারণ করতে পারে। উদাহরণস্বরূপ, XML ডেটা একটি ফাইল থেকে পড়া হতে পারে এবং ডেটাবেসে সংরক্ষিত হতে পারে।

উদাহরণ: XML ডেটা ডেটাবেসে সংরক্ষণ

import java.sql.*;
import java.io.*;

public class JDBCXMLExample {
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement pstmt = null;

        try {
            // ১. ডেটাবেসে সংযোগ স্থাপন
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database", "username", "password");

            // ২. XML ডেটা ফাইল থেকে পড়া
            File xmlFile = new File("data.xml");
            FileInputStream fileInputStream = new FileInputStream(xmlFile);

            // ৩. SQL INSERT কোয়েরি তৈরি
            String insertQuery = "INSERT INTO xml_data_table (id, xml_data) VALUES (?, ?)";
            pstmt = connection.prepareStatement(insertQuery);
            pstmt.setInt(1, 1);  // id প্যারামিটার
            pstmt.setBinaryStream(2, fileInputStream, (int) xmlFile.length());  // XML ডেটা ফাইল

            // ৪. কোয়েরি এক্সিকিউট করা
            int rowsInserted = pstmt.executeUpdate();
            System.out.println(rowsInserted + " rows inserted.");

        } catch (SQLException | IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (pstmt != null) pstmt.close();
                if (connection != null) connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

কোড ব্যাখ্যা:

  • FileInputStream: XML ফাইলটি InputStream এর মাধ্যমে পড়া হচ্ছে।
  • setBinaryStream(): XML ডেটা CLOB বা BLOB ফিল্ডে স্টোর করার জন্য এটি ব্যবহার করা হয়েছে।
  • executeUpdate(): ডেটাবেসে ডেটা ইনসার্ট করা হচ্ছে।

1.2 XML ডেটা রিট্রাইভ

ডেটাবেস থেকে XML ডেটা রিট্রাইভ করার জন্য, আমরা CLOB থেকে XML কনটেন্ট এক্সট্র্যাক্ট করে InputStream বা String হিসেবে প্রক্রিয়া করতে পারি।

উদাহরণ: XML ডেটা রিট্রাইভ করা

import java.sql.*;
import java.io.*;

public class JDBCXMLRetrieveExample {
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;

        try {
            // ১. ডেটাবেসে সংযোগ স্থাপন
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database", "username", "password");

            // ২. SQL SELECT কোয়েরি তৈরি
            String selectQuery = "SELECT xml_data FROM xml_data_table WHERE id = ?";
            pstmt = connection.prepareStatement(selectQuery);
            pstmt.setInt(1, 1);  // id প্যারামিটার

            // ৩. কোয়েরি এক্সিকিউট করা
            rs = pstmt.executeQuery();

            // ৪. XML ডেটা রিট্রাইভ করা
            if (rs.next()) {
                Clob xmlClob = rs.getClob("xml_data");
                Reader reader = xmlClob.getCharacterStream();
                BufferedReader bufferedReader = new BufferedReader(reader);
                String line;
                while ((line = bufferedReader.readLine()) != null) {
                    System.out.println(line);
                }
            }

        } catch (SQLException | IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null) rs.close();
                if (pstmt != null) pstmt.close();
                if (connection != null) connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

কোড ব্যাখ্যা:

  • getClob(): CLOB ডেটা থেকে XML কনটেন্ট রিট্রাইভ করা হচ্ছে।
  • BufferedReader: XML ডেটা পড়ার জন্য ব্যবহার করা হয়েছে এবং তা কনসোলে আউটপুট দেওয়া হচ্ছে।

2. JDBC এর সাথে JSON Integration

JSON (JavaScript Object Notation) হল একটি লাইটওয়েট ডেটা এক্সচেঞ্জ ফরম্যাট যা খুবই জনপ্রিয় এবং সহজে মানব-পঠনযোগ্য। JDBC-এ JSON ডেটা BLOB বা CLOB ট্যাবল ফিল্ডে সংরক্ষণ করতে এবং রিট্রাইভ করতে ব্যবহার করা হয়।

2.1 JSON ডেটা ডেটাবেসে সংরক্ষণ

আমরা JSON ডেটাকে String বা CLOB হিসেবে ডেটাবেসে ইনসার্ট করতে পারি।

উদাহরণ: JSON ডেটা ডেটাবেসে সংরক্ষণ

import java.sql.*;

public class JDBCJSONExample {
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement pstmt = null;

        try {
            // ১. ডেটাবেসে সংযোগ স্থাপন
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database", "username", "password");

            // ২. JSON ডেটা তৈরি
            String jsonData = "{\"name\": \"John\", \"age\": 30, \"city\": \"New York\"}";

            // ৩. SQL INSERT কোয়েরি তৈরি
            String insertQuery = "INSERT INTO json_data_table (id, json_data) VALUES (?, ?)";
            pstmt = connection.prepareStatement(insertQuery);
            pstmt.setInt(1, 1);  // id প্যারামিটার
            pstmt.setString(2, jsonData);  // JSON ডেটা ফিল্ডে ইনসার্ট করা

            // ৪. কোয়েরি এক্সিকিউট করা
            int rowsInserted = pstmt.executeUpdate();
            System.out.println(rowsInserted + " rows inserted.");

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (pstmt != null) pstmt.close();
                if (connection != null) connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

কোড ব্যাখ্যা:

  • setString(): JSON ডেটা স্ট্রিং হিসেবে ডেটাবেসে ইনসার্ট করা হয়েছে।

2.2 JSON ডেটা রিট্রাইভ

JSON ডেটা রিট্রাইভ করার জন্য, String বা CLOB ফিল্ড থেকে JSON ডেটা পাঠানো হয় এবং Java অ্যাপ্লিকেশনে প্রয়োগ করা যায়।

উদাহরণ: JSON ডেটা রিট্রাইভ করা

import java.sql.*;

public class JDBCJSONRetrieveExample {
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;

        try {
            // ১. ডেটাবেসে সংযোগ স্থাপন
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database", "username", "password");

            // ২. SQL SELECT কোয়েরি তৈরি
            String selectQuery = "SELECT json_data FROM json_data_table WHERE id = ?";
            pstmt = connection.prepareStatement(selectQuery);
            pstmt.setInt(1, 1);  // id প্যারামিটার

            // ৩. কোয়েরি এক্সিকিউট করা
            rs = pstmt.executeQuery();

            // ৪. JSON ডেটা রিট্রাইভ করা
            if (rs.next()) {
                String jsonData = rs.getString("json_data");
                System.out.println("Retrieved JSON: " + jsonData);
            }

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null) rs.close();
                if (pstmt != null) pstmt.close();
                if (connection != null) connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

কোড ব্যাখ্যা:

  • getString(): JSON ডেটা স্ট্রিং হিসেবে রিট্রাইভ করা হয়েছে এবং কনসোলে প্রিন্ট করা হয়েছে।

সারাংশ

JDBC এর মাধ্যমে XML এবং JSON ডেটা ডেটাবেসে সংরক্ষণ এবং রিট্রাইভ

Content added By
Promotion

Are you sure to start over?

Loading...