Javaطريقة تخزين ملف صوتي, صورة, فيديو في قاعدة البيانات في جافا
في المثال التالي سنفترض أننا سنقوم بالإتصال بقاعدة بيانات إسمها company
تمثل قاعدة بيانات لشركة و مبنية بنظام MySQL.
يوجد في هذه القاعدة جدول خاص للموظفين إسمه employee
.
في البداية سنجهز إستعلام الهدف منه إدخال صورة لأي موظف موجود في الجدول.
بعدها, سنحدد الموظف الذي نريد وضع صورته في قاعدة البيانات بالإعتماد على رقم الـ ID
الخاص فيه.
مثال
// هنا قمنا بإستدعاء الكلاسات و الإنترفيسات التي سنستخدمها للتعامل مع الملفات و قاعدة البيانات import java.io.FileInputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; 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("INSERT INTO employee(id, image) VALUES(?,?)"); // لأننا سنستخدمه لقراءة محتوى الصورة التي سنضعها في قاعدة البيانات FileInputStream هنا قمنا بإنشاء كائن من الكلاس FileInputStream fis = new FileInputStream("d:\\my-image.png"); // هنا قمنا بتمرير الرقم 44 مكان أول علامة إستفهام موضوعة في الإستعلام pstmt.setInt(1, 44); // هنا قمنا بتمرير الكائن الذي يشير إلى الصورة و تمرير حجمها أيضاً مكان ثاني علامة إستفهام موضوعة في الإستعلام pstmt.setBinaryStream(2, fis, fis.available()); // هنا قمنا بتنفيذ الإستعلام pstmt.executeUpdate(); // هنا قمنا بإغلاق الإتصال مع قاعدة البيانات con.close(); } catch(Exception e) { System.out.println(e.getMessage()); } } }
لو كانت قاعدة البيانات موجودة و قمنا بتشغيل البرنامج سيتم إضافة الصورة في سجل الموظف.