// هنا قمنا بإستدعاء الكلاسات و الإنترفيسات التي سنستخدمها للتعامل مع الملفات و قاعدة البيانات
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public static void main(String[] args) {
// الذي سنعتمد عليه للوصول إلى قاعدة البيانات MYSQL Driver هنا قمنا بتحديد رابط الوصول لبرنامج الـ
Class.forName("com.mysql.jdbc.Driver");
// و الذي سنستخدمه لتحديد المعلومات الأساسية التي نحتاجها للإتصال بقاعدة البيانات Connection هنا قمنا بإنشاء كائن من الكلاس
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/company","root","password");
// و الذي سنستخدمه لإرسال إستعلام إلى قاعدة البيانات PreparedStatement هنا قمنا بتجهيز كائن نوعه
PreparedStatement pstmt = con.prepareStatement("SELECT image FROM employee WHER id=?");
// هنا قمنا بتمرير الرقم 44 مكان علامة الإستفهام الموضوعة في الإستعلام
// rs هنا قمنا بتنفيذ الإستعلام و تخزين النتيجة في الكائن
ResultSet rs = pstmt.executeQuery();
// لأننا نعلم حتماً أن نتيجة الإستعلام ستكون عبارة عن سطر واحد rs هنا توجهنا مباشرةً لأول سطر موجود في الكائن
// لأننا سنستخدمه لجلب محتوى الصورة من قاعدة البيانات Blob هنا قمنا بإنشاء كائن من الإنترفيس
// imageBytes إسمها byte هنا قمنا بتخزين محتوى الصورة في مصفوفة نوعها
byte imageBytes[] = b.getBytes(1,(int)b.length());
// لأننا سنستخدمه لقراءة محتوى الصورة التي حصلنا عليها من قاعدة البيانات FileOutputStream هنا قمنا بإنشاء كائن من الكلاس
FileOutputStream fos = new FileOutputStream("d:\\retrived-image.png");
// بمعنى آخر قمنا بإنشاء نسخة من الصورة ,imageBytes هنا قمنا بكتابة محتوى الصورة الموجود في المصفوفة
// هنا قمنا بإغلاق الملف, أي كأننا أغلقنا الصورة
// هنا قمنا بإغلاق الإتصال مع قاعدة البيانات
System.out.println(e.getMessage());
// هنا قمنا بإستدعاء الكلاسات و الإنترفيسات التي سنستخدمها للتعامل مع الملفات و قاعدة البيانات
import java.io.FileOutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class Main {
public static void main(String[] args) {
try {
// الذي سنعتمد عليه للوصول إلى قاعدة البيانات MYSQL Driver هنا قمنا بتحديد رابط الوصول لبرنامج الـ
Class.forName("com.mysql.jdbc.Driver");
// و الذي سنستخدمه لتحديد المعلومات الأساسية التي نحتاجها للإتصال بقاعدة البيانات Connection هنا قمنا بإنشاء كائن من الكلاس
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/company","root","password");
// و الذي سنستخدمه لإرسال إستعلام إلى قاعدة البيانات PreparedStatement هنا قمنا بتجهيز كائن نوعه
PreparedStatement pstmt = con.prepareStatement("SELECT image FROM employee WHER id=?");
// هنا قمنا بتمرير الرقم 44 مكان علامة الإستفهام الموضوعة في الإستعلام
pstmt.setInt(1, 44);
// rs هنا قمنا بتنفيذ الإستعلام و تخزين النتيجة في الكائن
ResultSet rs = pstmt.executeQuery();
// لأننا نعلم حتماً أن نتيجة الإستعلام ستكون عبارة عن سطر واحد rs هنا توجهنا مباشرةً لأول سطر موجود في الكائن
rs.next();
// لأننا سنستخدمه لجلب محتوى الصورة من قاعدة البيانات Blob هنا قمنا بإنشاء كائن من الإنترفيس
Blob b = rs.getBlob(1);
// imageBytes إسمها byte هنا قمنا بتخزين محتوى الصورة في مصفوفة نوعها
byte imageBytes[] = b.getBytes(1,(int)b.length());
// لأننا سنستخدمه لقراءة محتوى الصورة التي حصلنا عليها من قاعدة البيانات FileOutputStream هنا قمنا بإنشاء كائن من الكلاس
FileOutputStream fos = new FileOutputStream("d:\\retrived-image.png");
// بمعنى آخر قمنا بإنشاء نسخة من الصورة ,imageBytes هنا قمنا بكتابة محتوى الصورة الموجود في المصفوفة
fos.wirte(imageBytes);
// هنا قمنا بإغلاق الملف, أي كأننا أغلقنا الصورة
fos.close();
// هنا قمنا بإغلاق الإتصال مع قاعدة البيانات
con.close();
}
catch(Exception e) {
System.out.println(e.getMessage());
}
}
}