Java দিয়ে BLOB এবং CLOB ডেটা Insert করা

File Handling এবং Blob, Clob Data Types - জাভা মাইএসকিউএল (Java MySQL) - Database Tutorials

374

BLOB (Binary Large Object) এবং CLOB (Character Large Object) হল দুটি ধরনের ডেটা টাইপ যা ডেটাবেসে বড় আকারের বাইনারি ডেটা (যেমন ছবি, ভিডিও, অডিও) এবং বড় আকারের টেক্সট ডেটা (যেমন বড় আকারের টেক্সট ফাইল) সংরক্ষণের জন্য ব্যবহৃত হয়। Java ব্যবহার করে MySQL ডেটাবেসে BLOB এবং CLOB ডেটা ইনসার্ট করার জন্য আপনি PreparedStatement ব্যবহার করতে পারেন। এখানে আমরা দেখবো কিভাবে এই দুটি ডেটা টাইপ ইনসার্ট করা যায়।


১. BLOB (Binary Large Object) ডেটা ইনসার্ট করা

BLOB ডেটা টাইপটি বাইনারি ডেটা যেমন ছবি, ভিডিও বা অন্য কোনো বাইনারি ফাইল সংরক্ষণের জন্য ব্যবহৃত হয়। আপনি Java দিয়ে MySQL ডেটাবেসে BLOB ডেটা ইনসার্ট করার জন্য PreparedStatement এবং FileInputStream ব্যবহার করতে পারেন।

উদাহরণ: Java দিয়ে BLOB ডেটা ইনসার্ট করা

  1. Maven Dependency: প্রথমে, নিশ্চিত করুন যে আপনার প্রোজেক্টে MySQL JDBC ড্রাইভার আছে:

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.30</version>
    </dependency>
    
  2. BLOB ডেটা ইনসার্ট করার কোড:

    import java.sql.*;
    import java.io.FileInputStream;
    import java.io.File;
    
    public class InsertBlobExample {
    
        public static void main(String[] args) {
            String url = "jdbc:mysql://localhost:3306/mydatabase";
            String user = "root";
            String password = "password";
            String filePath = "path/to/your/image.jpg"; // BLOB ফাইলের পাথ
    
            try (Connection conn = DriverManager.getConnection(url, user, password)) {
                String sql = "INSERT INTO my_table (id, image) VALUES (?, ?)";
                try (PreparedStatement ps = conn.prepareStatement(sql)) {
                    // ইনসার্ট করার জন্য ID সেট করা
                    ps.setInt(1, 1); // উদাহরণ হিসেবে ১ নম্বর ID
                    
                    // ফাইল ইনপুট স্ট্রীম ব্যবহার করে BLOB ডেটা সেট করা
                    try (FileInputStream inputStream = new FileInputStream(new File(filePath))) {
                        ps.setBinaryStream(2, inputStream, inputStream.available());
                    }
    
                    // SQL কমান্ড এক্সিকিউট করা
                    ps.executeUpdate();
                    System.out.println("BLOB data inserted successfully!");
                }
            } catch (SQLException | java.io.IOException e) {
                e.printStackTrace();
            }
        }
    }
    
  • এখানে ps.setBinaryStream(2, inputStream, inputStream.available()) ব্যবহার করা হয়েছে, যা BLOB ডেটা ইনপুট স্ট্রীম থেকে ডেটাবেসে ইনসার্ট করবে।

২. CLOB (Character Large Object) ডেটা ইনসার্ট করা

CLOB ডেটা টাইপটি বড় আকারের টেক্সট ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়। Java-তে CLOB ডেটা ইনসার্ট করার জন্য PreparedStatement এবং Reader ব্যবহার করা হয়।

উদাহরণ: Java দিয়ে CLOB ডেটা ইনসার্ট করা

  1. Maven Dependency: MySQL JDBC ড্রাইভার ব্যবহার করার জন্য উপরের মতো ডিপেনডেন্সি থাকলেই হবে।
  2. CLOB ডেটা ইনসার্ট করার কোড:

    import java.sql.*;
    import java.io.FileReader;
    import java.io.File;
    
    public class InsertClobExample {
    
        public static void main(String[] args) {
            String url = "jdbc:mysql://localhost:3306/mydatabase";
            String user = "root";
            String password = "password";
            String filePath = "path/to/your/textfile.txt"; // CLOB ফাইলের পাথ
    
            try (Connection conn = DriverManager.getConnection(url, user, password)) {
                String sql = "INSERT INTO my_table (id, text_data) VALUES (?, ?)";
                try (PreparedStatement ps = conn.prepareStatement(sql)) {
                    // ইনসার্ট করার জন্য ID সেট করা
                    ps.setInt(1, 1); // উদাহরণ হিসেবে ১ নম্বর ID
    
                    // ফাইল রিডার ব্যবহার করে CLOB ডেটা সেট করা
                    try (FileReader reader = new FileReader(new File(filePath))) {
                        ps.setCharacterStream(2, reader, (int) new File(filePath).length());
                    }
    
                    // SQL কমান্ড এক্সিকিউট করা
                    ps.executeUpdate();
                    System.out.println("CLOB data inserted successfully!");
                }
            } catch (SQLException | java.io.IOException e) {
                e.printStackTrace();
            }
        }
    }
    
  • এখানে ps.setCharacterStream(2, reader, (int) new File(filePath).length()) ব্যবহার করা হয়েছে, যা CLOB ডেটা ইনপুট স্ট্রীম থেকে ডেটাবেসে ইনসার্ট করবে।

৩. BLOB এবং CLOB ডেটা ইনসার্ট করার ক্ষেত্রে কিছু গুরুত্বপূর্ণ বিষয়

  • BLOB এবং CLOB ইনসার্ট করার জন্য PreparedStatement ব্যবহার করা হয়। এটি SQL ইনজেকশন থেকে রক্ষা করে এবং ডেটা ইনসার্ট করার প্রক্রিয়াটি আরও নিরাপদ করে।
  • BLOB ইনসার্ট করার জন্য setBinaryStream এবং CLOB ইনসার্ট করার জন্য setCharacterStream ব্যবহৃত হয়।
  • ইনপুট ডেটার আকার বড় হলে তা ডেটাবেসে সঠিকভাবে ইনসার্ট হতে কিছু সময় নিতে পারে, তাই ইচ্ছেমতো ডেটা সাইজ নিশ্চিত করতে হবে।

সারাংশ

Java দিয়ে BLOB (Binary Large Object) এবং CLOB (Character Large Object) ডেটা MySQL ডেটাবেসে ইনসার্ট করতে, আমরা PreparedStatement ব্যবহার করি। BLOB ডেটার জন্য setBinaryStream এবং CLOB ডেটার জন্য setCharacterStream ব্যবহার করা হয়। এই পদ্ধতিগুলি আপনাকে বড় আকারের বাইনারি এবং টেক্সট ডেটা ডেটাবেসে সঠিকভাবে ইনসার্ট করতে সহায়তা করে।

Content added By
Promotion

Are you sure to start over?

Loading...