Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

Javaطريقة تخزين ملف صوتي, صورة, فيديو في قاعدة البيانات في جافا

في المثال التالي سنفترض أننا سنقوم بالإتصال بقاعدة بيانات إسمها company تمثل قاعدة بيانات لشركة و مبنية بنظام MySQL.
يوجد في هذه القاعدة جدول خاص للموظفين إسمه employee.
في البداية سنجهز إستعلام الهدف منه إدخال صورة لأي موظف موجود في الجدول.
بعدها, سنحدد الموظف الذي نريد وضع صورته في قاعدة البيانات بالإعتماد على رقم الـ ID الخاص فيه.


مثال

Main.java
// هنا قمنا بإستدعاء الكلاسات و الإنترفيسات التي سنستخدمها للتعامل مع الملفات و قاعدة البيانات
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());
}
}
}
// هنا قمنا بإستدعاء الكلاسات و الإنترفيسات التي سنستخدمها للتعامل مع الملفات و قاعدة البيانات 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()); } } }

لو كانت قاعدة البيانات موجودة و قمنا بتشغيل البرنامج سيتم إضافة الصورة في سجل الموظف.