أفضل 50 سؤالاً وإجابات لمقابلة JDBC (2024)

فيما يلي أسئلة وأجوبة مقابلة Java Database Connectivity (JDBC) للطلاب الجدد وكذلك المرشحين ذوي الخبرة للحصول على وظيفة أحلامهم.

تنزيل PDF مجانًا: أسئلة مقابلة JDBC


1) ما هو JDBC؟

JDBC لتقف على اتصال قاعدة بيانات جافا. JDBC عبارة عن واجهة برمجة تطبيقات Java تتواصل مع قاعدة البيانات وتنفذ SQLquery.


2) ما هو برنامج تشغيل JDBC وكم عدد برامج تشغيل JDBC المتوفرة؟

يحتوي برنامج تشغيل JDBC على فئات وواجهات تساعد تطبيق Java وقاعدة البيانات.

هناك 4 أنواع من برامج تشغيل JDBC.

  1. برنامج تشغيل من النوع 1 أو برنامج تشغيل جسر JDBC-ODBC.
  2. سائق من النوع 2 أو أصلي-APIبرنامج تشغيل Java جزئيًا.
  3. برنامج تشغيل من النوع 3 أو بروتوكول الشبكة، وهو برنامج تشغيل Java خالص.
  4. برنامج تشغيل من النوع 4 أو برنامج تشغيل Java خالص للبروتوكول الأصلي.

3) كيف يمكنني الاتصال MySQL أو أوراكل مع جافا؟

//for MySQL {
try {

Class.forName ("com.mysql.jdbc.Driver");

con=DriverManager.getConnection ("jdbc: mysql://localhost:3306/dbanme", "username", "password");

Statement st=con.createstatement ();

Resultset rs=st.executeQuery ("select * from user");

rs.next (); catch (ClassNotFoundException e) {

System.err.println ("ClassNotFoundException in get Connection," + e.getMessage()); }

catch (SQLException e) {

System.err.println ("SQLException in getConnection," + e.getMessage ()) ;}

//for oracle

{

try

{

Class.forName ("oracle.jdbc.driver.OracleDriver");

con= DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:dbname", "username", "password");

Statement st=con.createstatement();

Resultset rs=st.executeQuery("select * from user");

Rs.next();

} catch (ClassNotFoundException e) {

System.err.println("ClassNotFoundException in get Connection," +e.getMessage()); }

catch (SQLException e) {

System.err.println("SQLException in getConnection, " + e.getMessage()); } return con; }

شرح الكود

يقوم Class.forName بإنشاء مثيل لبرنامج تشغيل JDBC والتسجيل في DriverManager.

تقوم طريقة getConnection () دائمًا بإنشاء اتصال بقاعدة البيانات.

نحن بحاجة إلى إنشاء كائن بيان من كائن الاتصال أعلاه. سيعود البيان كائن resultset. ResultSet.next () يعني إذا كانت مجموعة النتائج لا تزال تُرجع صفًا.


4) أي برنامج تشغيل JDBC هو أسرع برنامج تشغيل؟

يعد برنامج التشغيل من النوع 4 أو البروتوكول الأصلي، وهو برنامج تشغيل Java الخالص، هو أسرع برنامج تشغيل.


5) ما هي مكونات JDBC API؟

هناك أربعة أنواع من المكونات

  1. واجهة برمجة تطبيقات JDBC
  2. مدير برنامج تشغيل JDBC
  3. مجموعة اختبار JDBC
  4. جسر JDBC-ODBC
أسئلة مقابلة JDBC
أسئلة مقابلة JDBC

6) ما هي بيانات JDBC؟

هناك 3 أنواع من بيانات JDBC، كما هو موضح أدناه:

  1. ملخص الحساب: سيتم التنفيذ SQL الاستعلام (استعلام SQL ثابت) مقابل قاعدة البيانات.
  2. تصريح معد: يستخدم عندما نريد تنفيذ عبارة SQL بشكل متكرر. بيانات الإدخال ديناميكية ويتم إدخالها في وقت التشغيل.
  3. بيان قابل للاستدعاء: يستخدم عندما نريد تنفيذ الإجراءات المخزنة.

7) كيف يمكننا تنفيذ الإجراءات المخزنة؟

يمكن تنفيذ الإجراءات المخزنة باستخدام عبارة JDBCcallable. هنا هو الرمز.

Connection conn = null;

CallableStatement callStmt = conn.prepareCall("{call myStoreproc(?, ?)}");

callStmt.setString(1, "abcdefg");


8) ما هي مزايا استخدام PreparationStatement في Java؟

يتم استخدام البيان المعد لتنفيذ عبارات SQL نفسها بشكل متكرر. يتم تجميع البيان المعد مرة واحدة فقط على الرغم من أنه استخدم عدد "n" من المرات


9) ما هو ResultSet؟

تعني الواجهة java.sql.ResultSet مجموعة نتائج استعلام SQL. وهذا يعني أن المؤشر يشير إلى صف من الجدول؛ ويشير إلى ما قبل الصف الأول.


10) ما هي أنواع ResultSet؟

هناك ثلاثة أنواع متاحة من ResultSet. إذا لم نعلن عن أي مجموعة نتائج فهذا يعني أننا نتصل بـ TYPE_FORWARD_ONLY

  1. TYPE_FORWARD_ONLY: يمكن للمؤشر التحرك للأمام فقط.
  2. TYPE_SCROLL_INSENSITIVE: يمكن أن يتحرك المؤشر للأمام والخلف ولكنه ليس حساسًا.
  3. TYPE_SCROLL_SENSITIVE: يمكن أن يتحرك المؤشر للأمام والخلف، ولكنه حساس

11) اشرح الفرق بين RowSet وResultSet في JDBC؟

في اتصال مقبض ResultSet بقاعدة البيانات، لا يمكننا جعل النتيجة ككائن متسلسل.

بسبب المشكلة المذكورة أعلاه، لا يمكننا تمرير Resultset عبر الشبكة.

يقوم RowSet بتوسيع واجهة ResultSet، بحيث يحتفظ بجميع الأساليب من ResultSet. يتم إجراء تسلسل لـ RowSet.

لذلك، يمكننا تمرير مجموعة الصفوف من فئة إلى فئة أخرى لأنه لا يوجد لديه اتصال بقاعدة البيانات.


12) لماذا تستخدم setAutoCommit(false) في JDBC؟

إذا كنت تريد إيقاف تشغيل الالتزام التلقائي، فقم بتعيين Connection.setAutoCommit(false)


13) ما هي تحذيرات قاعدة البيانات في JDBC وكيف يمكننا التعامل مع تحذيرات قاعدة البيانات في JDBC؟

تحذير SQL أو تحذير قاعدة البيانات هو فئة فرعية من فئة SQLException. يمكننا التعامل معها باستخدام طريقة getWarnings() على Connection وStatement وResultSet


14) هل يمكنني الحصول على مجموعة نتائج فارغة؟

لا، لا يمكننا الحصول على مجموعة نتائج فارغة. يمكن أن يقوم ResultSet.next() بإرجاع قيمة فارغة إذا كان السجل التالي لا يحتوي على صف.


15) ماذا تقصد بالبيانات الوصفية ولماذا نستخدمها؟

البيانات الوصفية تعني بيانات أو معلومات حول بيانات أخرى. نستخدم البيانات التعريفية للحصول على إصدار منتج قاعدة البيانات واسم برنامج التشغيل والعدد الإجمالي للجداول وطرق العرض.


16) ما الفرق بين التنفيذ وتنفيذ الاستعلام وتنفيذ التحديث في JDBC؟

تنفيذ (): يمكن استخدامه لأي نوع من استعلام SQL.

ExecuteQuery (): يمكن استخدامه لاستعلام التحديد.

ExecuteUpdate(): يمكن استخدامه لتغيير/تحديث الجدول.


17) ما هو تجمع اتصال قاعدة البيانات؟ مزايا استخدام تجمع اتصال؟

يعني تجميع الاتصالات أنه سيتم تخزين الاتصالات في ذاكرة التخزين المؤقت ويمكننا إعادة استخدامها في المستقبل.

ميزة:

  1.  إنه أسرع
  2.  يصبح تجميع الاتصالات أسهل في تشخيص اتصال قاعدة البيانات وتحليله.

18) ما هي وظيفة فئة DriverManager؟

إنها واجهة بين المستخدم وبرامج التشغيل. يقوم DriverManager بتتبع كافة الأنشطة بين قاعدة البيانات وبرنامج التشغيل المناسب.


19) ما معنى التحديثات الدفعية؟

تعني التحديثات المجمعة تنفيذ مجموعة/مجموعة من استعلامات SQL مرة واحدة.

يمكن استخدام التحديثات المجمعة فقط للإدراج والتحديث والحذف ولكن ليس للاستعلام المحدد.


20) ما هو عدد الحزم المتوفرة في JDBC API؟

يتوفر نوعان من الحزم في JDBC API

  1. java.sql
  2. javax.sql

21) ما هو نوع الإرجاع للتنفيذ، وExecuteQuery، وExecuteUpdate؟

نوع الإرجاع للتنفيذ هو منطقي

نوع الإرجاع الخاص بتنفيذ الاستعلام هو كائن ResultSet

نوع الإرجاع الخاص بالتحديث هو int


22) يبدأ فهرس مجموعة النتائج بـ 0 أو 1؟

يبدأ فهرس مجموعة النتائج بـ 1.


23) ما هو دور Class.forName أثناء تحميل برامج التشغيل؟

يقوم Class.forName بإنشاء مثيل لبرنامج تشغيل JDBC والتسجيل في DriverManager.


24) جسر JDBC-ODBC متعدد الخيوط أم لا؟

لا، يستخدم JDBC-ODBC Bridge أساليب متزامنة لإجراء تسلسل لجميع الاستدعاءات التي تم إجراؤها إلى ODBC.


25) ما هي الواجهة التي تتعامل مع إدارة المعاملات في JDBC؟

تتعامل واجهة الاتصال مع إدارة المعاملات في JDBC. يوفر طريقة للالتزام () والتراجع () وما إلى ذلك.


26) لماذا يحدث خطأ "لا يوجد برنامج تشغيل مناسب"؟

"لا يوجد برنامج تشغيل مناسب" يحدث عندما نستدعي طريقة DriverManager.getConnection،

قد يحدث للأسباب التالية:

  • غير قادر على تحميل برامج تشغيل JDBC الدقيقة قبل استدعاء طريقة getConnection.
  • قد يكون عنوان URL لـ JDBC غير صالح أو خاطئ.

27) البيانات المعدة أسرع. لماذا؟

تنفيذ العبارة المعدة أسرع من التنفيذ المباشر لأنه يتم تجميع العبارة مرة واحدة فقط. ترتبط البيانات المعدة وبرنامج تشغيل JDBC ببعضهما البعض أثناء التنفيذ، ولا توجد أي أعباء اتصال.


28) هل من الممكن الاتصال بقواعد بيانات متعددة؟ باستخدام عبارة واحدة، هل يمكننا تحديث أو استخراج البيانات من قاعدتين أو ثلاث أو أكثر من قواعد البيانات؟

نعم، من الممكن الاتصال بقواعد بيانات متعددة في نفس الوقت، لكن ذلك يعتمد على برنامج التشغيل المحدد.

لتحديث واستخراج البيانات من قاعدة البيانات المختلفة يمكننا استخدام العبارة الواحدة. لكننا نحتاج إلى برمجيات وسيطة للتعامل مع قواعد بيانات متعددة أو قاعدة بيانات واحدة.


29) أخبرني بالفرق بين setMaxRows(int) وSetFetchSize(int)؟

سيتماكس رووس (كثافة العمليات) SetFetchSize(int)؟
يحدد عدد الصفوف التي يمكن أن تحتويها مجموعة النتائج في المرة الواحدة يحدد عدد الصفوف التي سيتم قراءتها من قاعدة البيانات.

30) حدثني عن الشخصيات المميزة؟

الحرف الخاص يسبقه حرف الهروب. مثال -

SELECT NAME FROM TABLE WHERE NAME LIKE '\_%' {escape '\'}

31) ما معنى "القراءة القذرة" في قاعدة البيانات؟

القراءة القذرة تعني "اقرأ القيمة التي قد تكون صحيحة أو قد لا تكون صحيحة".


32) ماذا تقصد بالتزامات المرحلتين؟

يتم استخدام الالتزام على مرحلتين في عملية المعاملات الموزعة. إذا تم تنفيذ أي معاملة، فسوف تؤثر على قواعد بيانات متعددة. سيتم استخدام الالتزامات على مرحلتين لجعل جميع قواعد البيانات متزامنة مع بعضها البعض.


33) كم عدد أنظمة القفل الموجودة في JDBC؟

يتوفر نوعان من القفل في JDBC يمكننا من خلالهما التعامل مع أكثر من مستخدم واحد.

إذا قام مستخدمان بعرض نفس السجل، فلن يتم إجراء القفل. إذا كان أحد المستخدمين يقوم بتحديث سجل ويقوم المستخدم الثاني أيضًا بتحديث نفس السجل. في ذلك الوقت، سوف نستخدم القفل.

  1. قفل متفائل: سيتم قفل السجل فقط عندما نقوم "بالتحديث".
  2. قفل متشائم: سيتم قفل السجل من "التحديد" لعرض الوقت وتحديثه والالتزام به.

34) ما هي الاستثناءات في JDBC؟

هناك أربعة أنواع من الاستثناءات في JDBC.

  1. استثناء التحديث الدفعي
  2. اقتطاع البيانات
  3. استثناء SQL
  4. تحذير SQL

35) أعط خطوات للاتصال بقاعدة البيانات باستخدام JDBC؟

هناك طريقتان لربط قاعدة البيانات باستخدام JDBC

  1. باستخدام برنامج DriverManager:

سيتم تحميل فئة برنامج التشغيل بمساعدة class.forName(فئة برنامج التشغيل) وClass.forName().

بعد التحميل، سيتم تمرير عنصر التحكم إلى DriverManager.

سيقوم DriverManager.getConnection() بإنشاء الاتصال للوصول إلى قاعدة البيانات.

  1. استخدام مصدر البيانات:

بالنسبة إلى DataSource، لا داعي لاستخدام DriverManager بمساعدة JNDI. سيتم البحث عن مصدر البيانات من خادم خدمة التسمية. سوف تقوم طريقة DataSource.getConnection() بإرجاع كائن الاتصال إلى قاعدة البيانات.


36) شرح بنية JDBC؟

تدعم JDBC API كلا من النماذج ذات المستويين والثلاث طبقات لقاعدة البيانات.

في نموذج 2-tier، يتفاعل تطبيق Java مع مصدر البيانات

في النموذج ثلاثي الطبقات، تتم إعادة توجيه الأوامر إلى "الطبقة الوسطى" من الخدمات. بعد ذلك يتم إرسال الأوامر إلى مصدر البيانات.


37) ما هي الميزات الجديدة المتوفرة في JDBC 4.0؟

الميزات الجديدة

  • التحميل التلقائي بواسطة فئة برنامج تشغيل JDBC
  • إدارة الاتصال المحسنة
  • تم تمكين RowId SQL
  • مجموعة البيانات التي تم تنفيذها بواسطة SQL باستخدام التعليقات التوضيحية
  • تحسينات في معالجة استثناءات SQL
  • دعم SQL XML ملفات

38) ما هي الحزم المستخدمة في JDBC؟

يتم استخدام 8 حزم في JDBC –

  1. sql.Driver
  2. الاتصال
  3. ملخص الحساب
  4. تصريح معد
  5. CallableStatement
  6. مجموعة النتائج
  7. ResultSetMetaData
  8. DatabaseMetaData

39) كم عدد RowSet المتوفرة في JDBC؟

هناك نوعان من مجموعات الصفوف المتاحة:

  1. متصل - يتصل كائن RowSet المتصل بقاعدة البيانات على الفور. إذا انتهى التطبيق، فسينتهي كائن RowSet المتصل أيضًا.
  2. انقطع الاتصال - يتصل كائن RowSet المنفصل بقاعدة البيانات بعد تنفيذ الاستعلام المطلوب.

40) ما معنى الاتصال؟

تتكون واجهة الاتصال من طرق للتفاعل مع قاعدة البيانات.


41) اشرح JDBC Savepoint؟

تمثل نقطة الحفظ النقطة التي يمكن للمعاملة الحالية العودة إليها. بدلاً من التراجع عن كافة التغييرات، يمكنه اختيار التراجع عن بعضها فقط.


42) اذكر مزايا استخدام DataSource؟

مصدر البيانات يقسم العمل بين المسؤول والمبرمج/المطور.

يقوم المسؤول بإنشاء كائن DataSource وربطه بسجل JNDI. يقوم المبرمج/المطور باسترداد كائن DataSource من السجل. وبعد ذلك سيتم إنشاء الاتصال بقاعدة البيانات.


43) ما هو سبب حاجتنا إلى JdbcRowSet مثل الغلاف المحيط بـ ResultSet؟

يمكننا استخدام كائن ResultSet كمكون JavaBeans.

  • يمكن أيضًا استخدام JdbcRowSet كمكون JavaBeans. ولهذا السبب يمكن إنشاؤه وتكوينه في وقت التصميم أو الترجمة وتنفيذه في وقت التشغيل.
  • جميع كائنات jdbcRowSet قابلة للتمرير والتحديث.

44) كم عدد الطرق التي يمكننا من خلالها عرض مجموعة النتائج؟

هناك طريقتان لعرض ResultSet

  1. عمود
  2. مؤشر العمود.

مثال: getInt(String columnName)، getInt(int columnIndex)


45) كم عدد الطرق التي يمكنك من خلالها تحديث مجموعة النتائج؟

تساعدك الطرق التالية على تحديث مجموعة النتائج

  • تحديث الصف ()
  • احذف صف()
  • صف التحديث ()
  • إلغاء رووبداتيس ()
  • الصف إدراج()

46) لماذا يجب علينا إغلاق اتصالات قاعدة البيانات في جافا؟

كأفضل ممارسة، يجب علينا إغلاق مجموعة النتائج والبيان والاتصال. إذا كان الاتصال قادمًا من التجمع، عند الإغلاق، يتم إرسال الاتصال مرة أخرى إلى التجمع لإعادة استخدامه. نحن نقوم بذلك في الكتلة النهائية{}، لأنه في حالة حدوث أي استثناء، فلا تزال لدينا فرصة لإغلاقها.


47) لماذا نستخدم أنواع البيانات الكبيرة في JDBC؟

يتم استخدامها لتخزين كمية كبيرة من البيانات في قاعدة البيانات مثل الصور والأفلام وما إلى ذلك.


48) كيفية ضبط السمة التزامن في ResultSet؟

هناك مستويان من التزامن

  1. CONCUR_READ_ONLY – للقراءة فقط.
  2. CONCUR_UPDATABLE - إنه مخصص للقراءة والتحديث.

49) ما هو الفرق بين مؤشرات قاعدة بيانات العميل والخادم؟

المؤشر الموجود على جانب الخادم يعني أنه يتم حفظ البيانات والنتائج على الخادم. فقط عندما يتم إرسال البيانات المطلوبة إلى العميل.

المؤشر من جانب العميل يعني إرسال كافة البيانات إلى موقع العميل.


50) كيف يمكنك إدراج الصور في قاعدة البيانات باستخدام JDBC؟

الصور الموجودة في قاعدة البيانات باستخدام نوع بيانات BLOB حيث يتم تخزين الصورة كتدفق بايت. يوضح الكود أدناه كيفية إدراج الصورة في قاعدة البيانات.

Connection con = null;

PreparedStatement prs = null;

InputStream inputstrm = null;

Class.forName("oracle.jdbc.driver.OracleDriver");

con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:mydb","username","yourpassword");

//localhost is your machine or hostname

//1521 is your oracle database port number

//mydb is your oracle database name.

prs = con.prepareCall("insert into emp_profile values (?,?)");

prs.setInt(1, 1223);

inputstrm = new FileInputStream(new File("emp_img.jpg"));

prs.setBinaryStream(2, inputstrm);

int count = prs.executeUpdate();

ستساعد أسئلة المقابلة هذه أيضًا في حياتك (شفهي)

مشاركة

2 تعليقات

  1. الصورة الرمزية جهنوي يقول:

    استخدام كامل جدا للطلاب ...........

  2. الصورة الرمزية عبدي يقول:

    الافضل

اترك تعليق

لن يتم نشر عنوان بريدك الإلكتروني. الحقول المشار إليها إلزامية *