قاعدة البيانات: ماي إس كيو إل
عند كتابة تطبيق، لتسهيل تصحيح أخطاء البرنامج، يمكن عرض معلومات الاستثناء في رمز معالجة الاستثناء، بحيث يمكن تصحيح الكود وفقًا لمطالبات الخطأ. عادةً ما يمكن كتابة كود معالجة الاستثناءات على النحو التالي:
يحاول{
…
}قبض(استثناء ه){
System.out.println(e.toString());
}
فيما يلي بعض رسائل الخطأ الشائعة:
(1) رسالة الخطأ التي تظهر عند عدم وجود برنامج التشغيل هي كما يلي:
java.lang.ClassNotFoundException: com.mysql.jdbc.Drive
النصف الثاني هو اسم السائق الذي كتبته في البرنامج.
الحل: تحقق بعناية مما إذا كان اسم الفئة مكتوبًا بشكل غير صحيح، إذا لم تتم كتابة اسم الفئة بشكل غير صحيح، فهذا يعني أن الحزمة المضغوطة التي يوجد بها برنامج التشغيل لم يتم إدخالها في المشروع.
(2) رسالة الخطأ التي تظهر عند كتابة عنوان URL بشكل غير صحيح هي كما يلي:
java.sql.SQLException: لا يوجد برنامج تشغيل مناسب
الحل: تحقق بعناية مما إذا كان تنسيق عنوان URL صحيحًا. تختلف تنسيقات URL لقواعد البيانات المختلفة.
(3) تظهر رسالة الخطأ عندما يكون عنوان IP المضيف غير صحيح أو عندما تكون الشبكة غير متاحة كما يلي:
com.mysql.jdbc.CommunicationsException: فشل ارتباط الاتصالات بسبب الاستثناء الأساسي:
** بداية الاستثناء المتداخل **
java.net.ConnectException
الرسالة: انتهت مهلة الاتصال: الاتصال
تتبع المسار:
java.net.ConnectException: انتهت مهلة الاتصال: الاتصال
في java.net.PlainSocketImpl.socketConnect (الطريقة الأصلية)
على java.net.PlainSocketImpl.doConnect (مصدر غير معروف)
على java.net.PlainSocketImpl.connectToAddress (مصدر غير معروف)
على java.net.PlainSocketImpl.connect (مصدر غير معروف)
على java.net.SocksSocketImpl.connect (مصدر غير معروف)
على java.net.Socket.connect (مصدر غير معروف)
على java.net.Socket.connect (مصدر غير معروف)
في java.net.Socket.<init>(مصدر غير معروف)
في java.net.Socket.<init>(مصدر غير معروف)
في com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:132)
في com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:273)
في com.mysql.jdbc.Connection.createNewIO(Connection.java:1639)
في com.mysql.jdbc.Connection.<init>(Connection.java:393)
على com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:262)
في java.sql.DriverManager.getConnection (مصدر غير معروف)
في java.sql.DriverManager.getConnection (مصدر غير معروف)
في test.JDBCTest.OracleTest(JDBCTest.java:25)
في test.JDBCTest.main(JDBCTest.java:12)
** نهاية الاستثناء المتداخل **
الحل: تحقق مما إذا كان عنوان IP صحيحًا وما إذا كانت هناك مشكلة في الشبكة.
(4) رسالة الخطأ في حالة وجود خطأ في المنفذ أو عدم بدء تشغيل خادم قاعدة البيانات هي كما يلي:
com.mysql.jdbc.CommunicationsException: فشل ارتباط الاتصالات بسبب الاستثناء الأساسي:
** بداية الاستثناء المتداخل **
java.net.ConnectException
الرسالة: تم رفض الاتصال: الاتصال
تتبع المسار:
java.net.ConnectException: تم رفض الاتصال: الاتصال
في java.net.PlainSocketImpl.socketConnect (الطريقة الأصلية)
على java.net.PlainSocketImpl.doConnect (مصدر غير معروف)
على java.net.PlainSocketImpl.connectToAddress (مصدر غير معروف)
على java.net.PlainSocketImpl.connect (مصدر غير معروف)
على java.net.SocksSocketImpl.connect (مصدر غير معروف)
على java.net.Socket.connect (مصدر غير معروف)
على java.net.Socket.connect (مصدر غير معروف)
في java.net.Socket.<init>(مصدر غير معروف)
في java.net.Socket.<init>(مصدر غير معروف)
في com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:132)
في com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:273)
في com.mysql.jdbc.Connection.createNewIO(Connection.java:1639)
في com.mysql.jdbc.Connection.<init>(Connection.java:393)
على com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:262)
في java.sql.DriverManager.getConnection (مصدر غير معروف)
في java.sql.DriverManager.getConnection (مصدر غير معروف)
في test.JDBCTest.OracleTest(JDBCTest.java:25)
في test.JDBCTest.main(JDBCTest.java:12)
** نهاية الاستثناء المتداخل **
الحل: تحقق مما إذا كان المنفذ صحيحًا وما إذا كان خادم قاعدة البيانات قيد التشغيل.
(5) رسالة الخطأ التي تظهر عندما يكون اسم قاعدة البيانات غير صحيح هي كما يلي:
java.sql.SQLException: قاعدة بيانات غير معروفة "test2"
الحل: التحقق من وجود قاعدة البيانات.
(6) رسالة الخطأ التي تظهر عندما يكون اسم المستخدم أو كلمة المرور غير صحيحة هي كما يلي:
java.sql.SQLException: تم رفض الوصول للمستخدم 'roo'@'localhost' (باستخدام كلمة المرور: نعم)
الحل: تأكد من صحة اسم المستخدم وكلمة المرور.
(7) رسالة الخطأ التي يطالب بها خطأ اسم الجدول هي كما يلي:
java.sql.SQLException: الجدول "test.student1" غير موجود
الحل: تحقق مما إذا كان الجدول موجودًا وما إذا كان اسم الجدول مكتوبًا بشكل غير صحيح.
(8) رسالة الخطأ التي يطالب بها خطأ اسم العمود هي كما يلي:
java.sql.SQLException: عمود غير معروف "sid" في "قائمة الحقول"
الحل: قم بإلقاء نظرة فاحصة على أسماء الأعمدة في جدول قاعدة البيانات.
(9) عند معالجة مجموعة النتائج، يكون الرقم التسلسلي للعمود المراد الحصول عليه أكبر من عدد الأعمدة، أو أقل من 0
رسالة الخطأ المطلوبة هي كما يلي:
java.sql.SQLException: فهرس العمود خارج النطاق، 4 > 3.
خلفية هذا الخطأ هي أن هناك 3 أعمدة فقط في جدول قاعدة البيانات، ويتم استخدام rs.getString(4) عند جلب المعلومات. من السهل ارتكاب هذا الخطأ، خاصة عند استخدام المعالجة الحلقية.
(10) عند تنفيذ عبارة الإدراج، إذا كان عدد الأعمدة في الجدول مختلفًا عن ذلك الموجود في عبارة الإدراج، فستكون رسالة الخطأ المطلوبة كما يلي:
java.sql.SQLException: لا يتطابق عدد الأعمدة مع عدد القيم في الصف 1
خلفية هذا الخطأ هي: يوجد 3 أعمدة في جدول قاعدة البيانات، وتم إعطاء 4 قيم عند الإدراج.
أدخلها في قيم الطالب ('0011323'،'Li Xu'،22,99).
(11) عند تنفيذ عبارة الإدراج، يتم تكرار المفتاح الأساسي.
رسالة الخطأ المطلوبة هي كما يلي:
java.sql.SQLException: إدخال مكرر "0011323" للمفتاح 1
خلفية هذا الخطأ هي: تم تنفيذ عبارة SQL مرتين متتاليتين، وحدث خطأ في المرة الثانية.
(12) عند تنفيذ عبارة الإدراج، تكون رسالة الخطأ إذا كانت القيمة طويلة جدًا كما يلي:
java.sql.SQLException: البيانات طويلة جدًا بالنسبة للعمود "id" في الصف 1
الحل، التحقق من طول العمود في قاعدة البيانات.