ل. طرق الاتصال بقاعدة البيانات: 1) ODBC (اتصال قاعدة البيانات المفتوح)
واجهة تعتمد على لغة C للوصول إلى محرك قاعدة البيانات المستند إلى SQL وتوفر واجهة متسقة للتواصل مع قاعدة البيانات والوصول إلى البيانات.
2) جدبك
إصدار Java من ODBC
2. واجهة برمجة تطبيقات JDBC الإجابة: واجهة برمجة تطبيقات JDBC هي:
1) واجهة الوصول إلى البيانات القياسية، والتي يمكن توصيلها بقواعد بيانات مختلفة؛
2) مجموعة من الفئات والواجهات في لغة البرمجة JAVA.
يمكن لواجهة برمجة تطبيقات JDBC:
1) الاتصال بقاعدة البيانات؛
2) إرسال سلسلة استعلام SQL إلى قاعدة البيانات؛
3) معالجة النتائج.
تتكون واجهة برمجة تطبيقات JDBC من جزأين رئيسيين:
1) واجهة تطوير تطبيقات JAVA مخصصة لمطوري تطبيقات JAVA؛
2) واجهة تطوير برنامج تشغيل JDBC
3. سائق JDBC
الإجابة: 1) عدد كبير من الفئات التي تنفذ فئات وواجهات JDBC؛
2) يوفر فئة تنفذ واجهة java.sql.Driver.
4. أربعة أنواع من إجابة برنامج تشغيل JDBC: 1) جسر JDBC-ODBC
يتم توفير الوصول إلى JDBC بواسطة برنامج تشغيل ODBC
2) واجهة برمجة التطبيقات المحلية
تقوم بعض برامج تشغيل Java بتحويل مكالمات JDBC إلى واجهات برمجة تطبيقات العميل المحلي
3) شبكة JDBC
برنامج تشغيل Java خالص ينقل مكالمات JDBC إلى DBMS ولا علاقة له ببروتوكولات الشبكة. يتم بعد ذلك تحويل المكالمة إلى بروتوكول DBMS من خلال الخادم.
4) البروتوكول المحلي
برنامج تشغيل Java خالص، يحول مكالمات JDBC مباشرة إلى بروتوكول الشبكة الذي يستخدمه DBMS
5. إجابة واجهة مطور JDBC: 1) java.sql - الوظيفة الرئيسية لـ JDBC ضمن نظام Java 2 الأساسي، الإصدار القياسي (J2SE)
2) javax.sql - وظائف JDBC المحسنة ضمن نظام Java 2، Enterprise Edition (J2EE)
6. استخدم عنوان URL لتأكيد قاعدة البيانات الإجابة: نستخدم عنوان URL لتحديد قاعدة البيانات (برنامج التشغيل الصحيح، المضيف الصحيح، البروتوكول الصحيح، البروتوكول الصحيح ، اسم المستخدم وكلمة المرور الصحيحين)؛
بناء الجملة: البروتوكول:البروتوكول الفرعي:الاسم الفرعي
مثال: jdbc:db2:MyTest
jdbc:db2://localhost:6789/MyTest
7. الوظائف المحسنة لحزمة javax.sql JDBC2.0 الإجابة: 1) واجهة مصدر البيانات؛
2) تجمع الاتصال؛
3) المعاملات الموزعة.
4) مجموعة الصفوف
8. إنشاء تطبيق JDBC أساسي الإجابة: 1) الخطوة 1: تسجيل السائق؛
2) الخطوة 2: إنشاء اتصال بقاعدة البيانات؛
3) الخطوة 3: إنشاء بيان؛
4) الخطوة 4: تنفيذ عبارة SQL؛
5) الخطوة 5: معالجة النتائج؛
6) الخطوة 6: إغلاق كائن JDBC
9. تسجيل برنامج التشغيل (الخطوة 1)
الإجابة: 1) يتم استخدام برنامج التشغيل للاتصال بقاعدة البيانات؛
2) تستخدم واجهة برمجة تطبيقات JDBC برنامج التشغيل الأول الذي يمكنه الاتصال بنجاح بعنوان URL المحدد؛
3) يمكن تحميل برامج تشغيل متعددة في نفس الوقت
10. كيفية تسجيل السائق:
الإجابة: 1) استخدم أداة تحميل الفئة (التحميل؛ إنشاء مثيل؛ التسجيل في DriverManager)
a.Class.forName("Com.ibm.db2.jdbc.app.DB2Driver");
ب.Class.forName("Com.ibm.db2.jdbc.net.DB2Driver");
ج.Class.forName("Com.microsoft.jdbc.sqlServer.SQLServerDriver);
د.Class.forName("oracl.jdbc.driver.OracleDriver");
e.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
2) إنشاء مثيل للسائق
أ. Driver drv = new COM.cloudscape.core.RmiJdbcDriver();
1. إنشاء اتصال بقاعدة البيانات (الخطوة 2)
الإجابة: عندما يستدعي DriverManager طريقة getConnection(urlString)، فإنه في الواقع يستدعي طريقة الاتصال (urlString) الخاصة ببرنامج التشغيل؛
1) عندما يتوافق برنامج التشغيل بالتأكيد مع عنوان URL لقاعدة البيانات، يقوم DriverManager بإنشاء اتصال؛
2) عندما لا يتطابق أي برنامج تشغيل، يتم إرجاع قيمة فارغة ويتم فحص برنامج التشغيل التالي؛
3) إذا لم يتم تأسيس الاتصال، فسيتم طرح استثناء SQLExcepiton
2. بعض عناوين URL لـ JDBC شائعة الاستخدام
الإجابة: 1) JDBC-ODBC: jdbc:odbc:<DB>
2) أوراكل: jdbc:Oracle:oci:@<sid> أو jdbc:Oracle:thin:@<SID>
3) Weblogic MS-SQL: jdbc:weblogic:mssqlserver4:<DB>@<HOST>:<PORT>
4) DB2: jdbc:db2:MyTest أو jdbc.db2://localhost:6789/MyTest (يتطلب اسم المستخدم وكلمة المرور)
3. إجابة طريقة اتصال برنامج التشغيل: 1) إنشاء مكالمة مباشرة إلى مثيل برنامج التشغيل المحدد؛
2) تجنب مشاكل الوصول العامة
برنامج التشغيل drv = new COM.ibm.db2.jdbc.app.DB2Driver();
اتصال يخدع = فارغ؛
حاول {con = drv.connect("jdbc:db2:MyTest",new Properties())}
Catch(SQLException e){}
4. إنشاء بيان (الخطوة 3)
الجواب: 1) ثلاث واجهات للبيان:
أ. بيان؛
ب.البيان المعد (الموروث من البيان)؛
ج.CallableStatement (موروثة من PreparedStatement)؛
2) استخدم طريقة Connection.createStatement () للحصول على كائن بيان
5. كائن PreparedStatement الإجابة: 1) استدعاء ProparedStatement أكثر كفاءة من البيان؛
2) ورثت من البيان.
3) بناء الجملة: PreparationStatement pstm = Connection.prepareStatement(sqlString);
6. إجابة كائن CallableStatement: 1) استدعاء الإجراء المخزن في قاعدة البيانات من خلال CallableStatement؛
2) موروثة من ReadyStatement؛
3) CallableStatement cstm = Connection.prepareCall("{call return_student[?,?]}");
cstm.setString(1,"8623034");
cstm.registerOutparameter(2, Types.REAL);
cstm.execute();
float gpa = cstm.getFloat(2);
7. مقارنة واجهة البيان: |
-------------------------------------------------- ----------------------------
كتابة موقع الكود |. خادم العميل |
-------------------------------------------------- ----------------------------
كتابة موقع الكود | جانب الخادم العميل |
-------------------------------------------------- ----------------------------
تكنولوجيا الترميز |. Java، عمليات SQL |. Java، عمليات SQL |. لغات برمجة قواعد البيانات، مثل PL/SQL
-------------------------------------------------- ----------------------------
قابلية التكوين |. عالية |. عالية في المرة الأولى، ومنخفضة بعد ذلك |
-------------------------------------------------- ----------------------------
قابلية النقل |. عالية |. عالية بافتراض أن PreparedStatement مدعومة
-------------------------------------------------- ----------------------------
كفاءة النقل |. منخفضة لأول مرة، عالية بعد ذلك |