কম্পিউটার টিউটোরিয়াল

Java প্রোগ্রাম ব্যবহার করে MySQL ডেটাবেসে ছবি ইনসার্ট কীভাবে করবেন?


MySQL ডেটাবেসে ছবি ধারণের জন্য সাধারণত blob টাইপ ব্যবহার করা হয়। তাই নিশ্চিত করুন যে নিচের বিবরণের সাথে একটি টেবিল তৈরি করা আছে:

+-------+--------------+------+-----+---------+-------+ 
| Field | Type         | Null | Key | Default | Extra | 
+-------+--------------+------+-----+---------+-------+ 
| Name  | varchar(255) | YES  |     | NULL    |       | 
| image | blob         | YES  |     | NULL    |       | 
+-------+--------------+------+-----+---------+-------+

MySQL ডেটাবেসে ছবি ইনসার্ট করার ধাপসমূহ:

ধাপ ১: ডেটাবেসের সাথে কানেক্ট করুন

DriverManager ক্লাসের getConnection() মেথড ব্যবহার করে ডেটাবেসের সাথে কানেক্ট করা যায়। MySQL URL jdbc:mysql://localhost/sampleDB (sampleDB হল ডেটাবেসের নাম), ইউজারনেম ও পাসওয়ার্ড পাস করুন।

String mysqlUrl = "jdbc:mysql://localhost/sampleDB"; 
Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");

ধাপ ২: Prepared Statement তৈরি করুন

Connection ইন্টারফেসের prepareStatement() মেথড ব্যবহার করে PreparedStatement অবজেক্ট তৈরি করুন। এই মেথডে ইনসার্ট কোয়েরি (প্লেসহোল্ডারসহ) পাস করুন।

PreparedStatement pstmt = con.prepareStatement("INSERT INTO MyTable VALUES(?, ?)");

ধাপ ৩: প্লেসহোল্ডারগুলোর মান সেট করুন

PreparedStatement ইন্টারফেসের setter মেথডগুলো ব্যবহার করে প্লেসহোল্ডারগুলোর মান সেট করুন। কলামের ডেটা টাইপ অনুযায়ী মেথড বেছে নিন। যেমন VARCHAR-এর জন্য setString(), INT-এর জন্য setInt()। Blob টাইপের জন্য setBinaryStream() বা setBlob() মেথড ব্যবহার করুন। এই মেথডগুলোর প্যারামিটার হিসেবে প্লেসহোল্ডার ইনডেক্স (ইন্টিজার) এবং InputStream অবজেক্ট পাস করুন।

pstmt.setString(1, "sample image"); 
// Inserting Blob type 
InputStream in = new FileInputStream("E:\\images\\cat.jpg"); 
pstmt.setBlob(2, in);

ধাপ ৪: স্টেটমেন্ট এক্সিকিউট করুন

PreparedStatement ইন্টারফেসের execute() মেথড ব্যবহার করে উপরের তৈরি PreparedStatement এক্সিকিউট করুন।

উদাহরণ

import java.io.FileInputStream; 
import java.io.InputStream; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 

public class InsertImageToMySqlDB { 
    public static void main(String args[]) throws Exception { 
        // ড্রাইভার রেজিস্টার 
        DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 
        // কানেকশন 
        String mysqlUrl = "jdbc:mysql://localhost/sampleDB"; 
        Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); 
        System.out.println("Connection established......"); 
        PreparedStatement pstmt = con.prepareStatement("INSERT INTO MyTable VALUES(?,?)"); 
        pstmt.setString(1, "sample image"); 
        // Inserting Blob type 
        InputStream in = new FileInputStream("E:\\images\\cat.jpg"); 
        pstmt.setBlob(2, in); 
        // স্টেটমেন্ট এক্সিকিউট 
        pstmt.execute(); 
        System.out.println("Record inserted......"); 
    } 
}

আউটপুট

Connection established...... 
Record inserted......

  1. JDBC ব্যবহার করে MySQL ডেটাবেসে ফাইল ইনসার্ট/স্টোর কীভাবে করবেন?

  2. Java ব্যবহার করে MySQL কলামে DATE ইনসার্ট করার পদ্ধতি

  3. Java থেকে MySQL-এ কানেক্ট করার পদ্ধতি (JDBC)

  4. Java-এ PreparedStatement ব্যবহার করে MySQL-এ NULL মান ইনসার্ট করা (setNull)