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......