حفظ وإسترجاع الصور من والى قاعدة بيانات derby & MySql
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: قواعد البيانات JAVA JDBC
صفحة 1 من اصل 1 • شاطر
حفظ وإسترجاع الصور من والى قاعدة بيانات derby & MySql
بسم الله الرحمن الرحيم
أهلا وسهلا بكم إخوانى الكرام
الكثير منا يود تخزين الصورة فى قاعدة بيانات مشروعة واستخادمه لاحقا من خلال الجافا ..و يوجد عدة طرق لتخزن الصور و استرجاعها مرة اخرى و ذلك من خلال نوع البيانات SQL BLOB التي تستخدم لحفظ البيانات الثنائية في جدول قاعدة البيانات ويتم ذلك بإستخدام الواجهة PreparedStatement التى لديها الطرق getBlob وsetBlob لتسمح لنا للوصول إلى قيمة SQL BLOB ولكى نتمكن من حفظ و استرجاع الصورة فى قاعدة البيانات يجب اتباع الخطوات التالية :
1_إنشاء حقل بيانات فى جدول قاعدة البيانات من BLOB وهى اختصار للجملة binary large object والتى تسمح بتخزين البيانات كبيرة الحجم كبيانات ثنائية
2_نقوم بالاتصال بقاعدة البيانات ذلك عن طريق الكود التالى :
3_نقوم بانشاء الطريقة العامة التالية لخلق PreparedStatement
من جملة الاستعلام السابقة يمكنك ملاحظة اننا سنقوم بتخزين الصورة فى جدول قاعدة البيانات user_images و الذى يحتوى على حقلين لذلك استخدمنى علامتى الاستفهام أعلاه
4_ لكتابة البيانات إلى BLOB، يستخدم الكائن PreparedStatement إما Java Blob object أو InputStream. في حالة استخدام الاخيرة يجب تحديد طول البيانات الثنائية ومن ثم حفظها فى قاعدة البيانات وذلك على النحو التالى :
يمكنك ملاحظة اننا حددنا الصورة المراد حفظها فى قاعدة البيانات user.png ثم قمنا طول البيانات الثنائية ثم استخدمنا الطريقة setString لوضع اسم فى العامود رقم واحد فى الجدول واستخدمنا الطريقة setBlob لوضع الصورة فى العامود رقم 2 كبيانات ثنائية مع تحديد طول تلك البيانات و هكذا تتم تتم عملية الحفظ
5_ إسترجاع صورة من جدول قاعدة بيانات ويتم ذلك بتنفيذ استعلام واستخدام فئة resultset والذى يحتوي على أسلوب getBlob () للحصول على اللبيانات ثنائية كما يلى :
تحياتى لكم
أهلا وسهلا بكم إخوانى الكرام
الكثير منا يود تخزين الصورة فى قاعدة بيانات مشروعة واستخادمه لاحقا من خلال الجافا ..و يوجد عدة طرق لتخزن الصور و استرجاعها مرة اخرى و ذلك من خلال نوع البيانات SQL BLOB التي تستخدم لحفظ البيانات الثنائية في جدول قاعدة البيانات ويتم ذلك بإستخدام الواجهة PreparedStatement التى لديها الطرق getBlob وsetBlob لتسمح لنا للوصول إلى قيمة SQL BLOB ولكى نتمكن من حفظ و استرجاع الصورة فى قاعدة البيانات يجب اتباع الخطوات التالية :
1_إنشاء حقل بيانات فى جدول قاعدة البيانات من BLOB وهى اختصار للجملة binary large object والتى تسمح بتخزين البيانات كبيرة الحجم كبيانات ثنائية
2_نقوم بالاتصال بقاعدة البيانات ذلك عن طريق الكود التالى :
- الكود:
String host = "jdbc:derby://localhost:1527/Employees";
String uName = "admin";
String uPass= "admin";
Connection con = DriverManager.getConnection( host, uName, uPass);
3_نقوم بانشاء الطريقة العامة التالية لخلق PreparedStatement
- الكود:
PreparedStatement pstmt = con.prepareStatement(
'INSERT INTO user_images VALUES(?, ?)');
من جملة الاستعلام السابقة يمكنك ملاحظة اننا سنقوم بتخزين الصورة فى جدول قاعدة البيانات user_images و الذى يحتوى على حقلين لذلك استخدمنى علامتى الاستفهام أعلاه
4_ لكتابة البيانات إلى BLOB، يستخدم الكائن PreparedStatement إما Java Blob object أو InputStream. في حالة استخدام الاخيرة يجب تحديد طول البيانات الثنائية ومن ثم حفظها فى قاعدة البيانات وذلك على النحو التالى :
- الكود:
File file = new File( "user.png" );
long length = file.length();
InputStream in = new FileInputStream( file );
pstmt.setString( 1, "ali" );
pstmt.setBlob( 2, in, length );
pstmt.executeUpdate();
يمكنك ملاحظة اننا حددنا الصورة المراد حفظها فى قاعدة البيانات user.png ثم قمنا طول البيانات الثنائية ثم استخدمنا الطريقة setString لوضع اسم فى العامود رقم واحد فى الجدول واستخدمنا الطريقة setBlob لوضع الصورة فى العامود رقم 2 كبيانات ثنائية مع تحديد طول تلك البيانات و هكذا تتم تتم عملية الحفظ
5_ إسترجاع صورة من جدول قاعدة بيانات ويتم ذلك بتنفيذ استعلام واستخدام فئة resultset والذى يحتوي على أسلوب getBlob () للحصول على اللبيانات ثنائية كما يلى :
- الكود:
ResultSet rs = stmt.executeQuery(
"select image from user_images where user_name='ali' ");
rs.first();
Blob blob = rs.getBlob(1);
InputStream in = blob.getInputStream( );
BufferedImage image = ImageIO.read( in );
تحياتى لكم
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: حفظ وإسترجاع الصور من والى قاعدة بيانات derby & MySql
تحياتى لك استاذى على ها المجهود
VB.NET- المراقبين
- تاريخ التسجيل : 18/02/2011
المساهمات : 121
النقاط : 189
التقيم : 6
الدولة :
الجنس :
رد: حفظ وإسترجاع الصور من والى قاعدة بيانات derby & MySql
بارك الله فى عمل استاذى احمد مناع
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: قواعد البيانات JAVA JDBC
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
أمس في 8:56 pm من طرف moslema_r
» شركة مكافحة حشرات في راس الخيمة
أمس في 8:34 pm من طرف moslema_r
» تطبيقIncogniton لإدارة ملفات تعريف متعددة للمتصفح
الأربعاء أبريل 24, 2024 3:51 pm من طرف زاكااا
» افضل شركة مكافحة النمل الابيض بالرياض
الإثنين أبريل 22, 2024 9:41 pm من طرف moslema_r
» Exemplary Сasual Dating - Verified Women
الخميس أبريل 18, 2024 9:18 pm من طرف wdqwd
» رش الدفان بالرياض
الخميس أبريل 18, 2024 7:11 pm من طرف moslema_r
» شركة تنظيف خزانات الشارقة
الخميس أبريل 18, 2024 6:57 pm من طرف moslema_r
» شركة مكافحة الفئران بالرياض
الإثنين أبريل 15, 2024 8:23 pm من طرف moslema_r
» افضل شركة كشف تسربات المياه بالباحة
الخميس أبريل 04, 2024 7:02 am من طرف gmalnagy
» ساعدوني وفهموني help me
الجمعة مارس 29, 2024 8:37 am من طرف linesoft