// هنا قمنا بإستدعاء الكلاسات و الإنترفيسات التي سنستخدمها للتعامل مع الملفات و قاعدة البيانات
import java.io.FileWriter;
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 file FROM employee WHER id=?");
// هنا قمنا بتمرير الرقم 44 مكان علامة الإستفهام الموضوعة في الإستعلام
// rs هنا قمنا بتنفيذ الإستعلام و تخزين النتيجة في الكائن
ResultSet rs = pstmt.executeQuery();
// لأننا نعلم حتماً أن نتيجة الإستعلام ستكون عبارة عن سطر واحد rs هنا توجهنا مباشرةً لأول سطر موجود في الكائن
// لأننا سنستخدمه لجلب محتوى الملف من قاعدة البيانات Clob هنا قمنا بإنشاء كائن من الإنترفيس
Clob clob = rs.getClob(1);
// clob لأننا سنستخدمه لقراءة محتوى الملف الذي يشير إليه الكائن FileReader هنا قمنا بإنشاء كائن من الكلاس
Reader r = clob.getCharacterStream();
// لأننا سنستخدمه لقراءة محتوى الملف الذي حصلنا عليه من قاعدة البيانات FileWriter هنا قمنا بإنشاء كائن من الكلاس
FileWriter fw = new FileWriter("c:\\retrivedFile.txt");
// fw في الملف الذي يشير إليه الكائن r بواسطة الحلقة التالية قمنا بنسخ محتوى الملف الذي يشير إليه الكائن
while ((c = r.read()) != -1) {
// هنا قمنا بإغلاق الإتصال مع قاعدة البيانات
System.out.println(e.getMessage());
// هنا قمنا بإستدعاء الكلاسات و الإنترفيسات التي سنستخدمها للتعامل مع الملفات و قاعدة البيانات
import java.io.Reader;
import java.io.FileWriter;
import java.sql.Clob;
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 file FROM employee WHER id=?");
// هنا قمنا بتمرير الرقم 44 مكان علامة الإستفهام الموضوعة في الإستعلام
pstmt.setInt(1, 44);
// rs هنا قمنا بتنفيذ الإستعلام و تخزين النتيجة في الكائن
ResultSet rs = pstmt.executeQuery();
// لأننا نعلم حتماً أن نتيجة الإستعلام ستكون عبارة عن سطر واحد rs هنا توجهنا مباشرةً لأول سطر موجود في الكائن
rs.next();
// لأننا سنستخدمه لجلب محتوى الملف من قاعدة البيانات Clob هنا قمنا بإنشاء كائن من الإنترفيس
Clob clob = rs.getClob(1);
// clob لأننا سنستخدمه لقراءة محتوى الملف الذي يشير إليه الكائن FileReader هنا قمنا بإنشاء كائن من الكلاس
Reader r = clob.getCharacterStream();
// لأننا سنستخدمه لقراءة محتوى الملف الذي حصلنا عليه من قاعدة البيانات FileWriter هنا قمنا بإنشاء كائن من الكلاس
FileWriter fw = new FileWriter("c:\\retrivedFile.txt");
// fw في الملف الذي يشير إليه الكائن r بواسطة الحلقة التالية قمنا بنسخ محتوى الملف الذي يشير إليه الكائن
int c;
while ((c = r.read()) != -1) {
fw.write((char)c);
}
// هنا قمنا بإغلاق الملف
fw.close();
// هنا قمنا بإغلاق الإتصال مع قاعدة البيانات
con.close();
}
catch(Exception e) {
System.out.println(e.getMessage());
}
}
}