ধরি ডেটাবেসে MyTable নামক একটি টেবিল আছে নিচের বিবরণের সাথে।
+-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | Name | varchar(255) | YES | | NULL | | | image | blob | YES | | NULL | | +-------+--------------+------+-----+---------+-------+
JDBC প্রোগ্রাম ব্যবহার করে blob ডেটা টাইপে মান ইনসার্ট করতে বাইনারি স্ট্রিম ডেটা সেট করার মেথড ব্যবহার করতে হয়। PreparedStatement ইন্টারফেস ছবি ইনসার্ট করার জন্য নিচের মেথডগুলো দিয়ে থাকে।
void setBinaryStream(int parameterIndex, InputStream x) মেথড দেওয়া ইনপুট স্ট্রিমের ডেটা (ফাইল শেষ পর্যন্ত) নির্দিষ্ট ইনডেক্সের প্যারামিটারের মান হিসেবে সেট করে।
এই মেথডের অন্যান্য ভেরিয়েন্ট
void setBinaryStream(int parameterIndex, InputStream x, int length)
void setBinaryStream(int parameterIndex, InputStream x, long length)
void setBlob(int parameterIndex, Blob x) মেথড দেওয়া blob অবজেক্টকে নির্দিষ্ট ইনডেক্সের প্যারামিটারের মান হিসেবে সেট করে।
এই মেথডের অন্যান্য ভেরিয়েন্ট
void setBlob(int parameterIndex, InputStream inputStream)
void setBlob(int parameterIndex, InputStream inputStream, long length)
এই মেথডগুলোতে যেকোনো একটি ব্যবহার করে Blob ডেটা টাইপে মান সেট করা যায়।
উদাহরণ
নিচের উদাহরণ setBinaryStream() মেথড ব্যবহার করে Blob ডেটা টাইপে মান সেট করে।
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class IndertingValueForBlob {
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......");
// মান ইনসার্ট
String query = "INSERT INTO MyTable(Name,image) VALUES (?, ?)";
PreparedStatement pstmt = con.prepareStatement(query);
pstmt.setString(1, "sample_image");
FileInputStream fin = new FileInputStream("E:\\images\\cat.jpg");
pstmt.setBinaryStream(2, fin);
pstmt.execute();
System.out.println("Record inserted .....");
}
}
আউটপুট
Connection established...... Record inserted ......
MySQL Workbench-এ ব্লব ভ্যালু দেখতে চাইলে ইনসার্ট করা ছবিটি দেখা যাবে।
