Javaطريقة إسترجاع ملف نصي من قاعدة البيانات في جافا
في المثال التالي سنفترض أننا سنقوم بالإتصال بقاعدة بيانات إسمها company
تمثل قاعدة بيانات لشركة و مبنية بنظام MySQL.
يوجد في هذه القاعدة جدول خاص للموظفين إسمه employee
.
في البداية سنجهز إستعلام الهدف منه إسترجاع ملف لأي موظف موجود في الجدول.
بعدها, سنحدد الموظف الذي نريد إسترجاع ملفه من قاعدة البيانات بالإعتماد على رقم الـ ID
الخاص فيه.
مثال
// هنا قمنا بإستدعاء الكلاسات و الإنترفيسات التي سنستخدمها للتعامل مع الملفات و قاعدة البيانات 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()); } } }
لو كانت قاعدة البيانات موجودة و قمنا بتشغيل البرنامج سنسترجع الملف الموضوع في سجل الموظف.