Java - الاتصال ب MySQL باستخدام برنامج تشغيل JDBC
في هذا الفصل ، ستدرس قواعد البيانات في جافا عن طريق إنشاء قاعدة بيانات بسيطة بجدول واحد ، ودراسة كيفية إنشاء الاتصال باستخدام java.Java يستخدم واجهة برمجة تطبيقات تسمى JDBC (اتصال قاعدة بيانات Java) للاتصال بقاعدة بيانات البيانات. < / span >< / span >< / span >يسمح لك JDBC بالاتصال بعدد كبير من مديري قواعد البيانات مثل Oracle و MySQL و PostGre وما إلى ذلك < / span >
< h2 > ما هو JDBC؟< / h2>JDBC (نمط اتصال قاعدة بيانات جافا)< / span >< / span > هي واجهة اتصال بين برنامج java وقاعدة بيانات SQL المملوكة لشركة Oracle ، والتي أنشأتها شركة Sun Microsystems ومتاحة منذ JDK الإصدار 1.1. هذه التقنية هي برنامج تشغيل يحدد كيفية وصول العميل إلى قاعدة بيانات MySQL. يوفر برنامج تشغيل JDBC أساليب للاستعلام وتحديث البيانات في قاعدة البيانات. JDBC هي أداة لقواعد البيانات العلائقية.
فئات JDBC موجودة في الحزمة java.sql و javax.sql< / a>. يسمح JDBC بتطبيقات متعددة في نفس التطبيق. تعتمد واجهة برمجة التطبيقات على آلية تساعد على تحميل الحزم المقابلة ديناميكيا وحفظها باستخدام Driver Manager. يتم استخدام واجهة برمجة تطبيقات JDBC لإنشاء JDBC.
يتم استخدام واجهة برمجة تطبيقات JDBC لإكمال المهام التالية:
- إنشاء اتصال بقاعدة البيانات العلائقية مثل MySQL و Oracle وما إلى ذلك.
- إرسال استعلامات SQL ليتم تنفيذها على خادم قاعدة البيانات.
- Process تم إرجاع النتائج عن طريق تشغيل استعلام SQL.
JDBC
- جسر JDBC-ODBC (النوع 1): يستخدم برنامج التشغيل هذا برنامج تشغيل ODBC للاتصال بقاعدة بيانات الملقم. يجب أن يكون لديك برنامج تشغيل ODBC مثبتا في الجهاز الذي تريد توصيله بقاعدة البيانات ، ولهذا السبب فإن برنامج التشغيل هذا قديم ويجب استخدامه فقط عندما لا يكون لديك خيار.
- واجهة برمجة التطبيقات الأصلية (النوع 2): يقوم هذا النوع بتحويل أوامر JDBC لاستدعاء قاعدة البيانات عبر برنامج تشغيل أصلي على العميل. يجب أن يكون لديك واجهة برمجة تطبيقات قاعدة بيانات العملاء مثبتة على الجهاز من أجل إنشاء الاتصال.
- برنامج تشغيل مكتوب بلغة java باستخدام Middleware < / b > (النوع 3): يستخدم هذا النوع بروتوكول شبكة لإرسال رسائل إلى الخادم الوسيط ، والذي يمكنه الاتصال بأنواع مختلفة من قواعد البيانات. يمكن استخدام برنامج التشغيل هذا بسهولة مع تطبيق صغير ولكن يجب أن يكون لديك الخادم. متوسط مثبتة للعمل مع برنامج التشغيل هذا. لا يستخدم برنامج التشغيل هذا على نطاق واسع بسبب أدائها الضعيف.
- برنامج تشغيل جافا يستخدم البروتوكول الأصلي (النوع 4): هذا هو برنامج التشغيل المفضل لأنه يستدعي قاعدة البيانات مباشرة عن طريق تحويل رسائل JDBC إلى بروتوكول شبكة متوافق مع الخادم. يجب أن نستخدم برامج تشغيل محددة ، مثل <ب>OJDBCب> مقدمة من أوراكل و <ب>موصل الخلية / J< / ب > لقواعد بيانات MySQL.
JDBC فئات API
الفئات موجودة في الحزم <ب>java.sqlب>. الفئات 4 المهمة هي: DriverManager و Connection و Statement و ReadyStatement و ResultSet.
- DriverManager: مسؤول عن تحميل قاعدة البيانات وتكوينها.
- Connection: المصادقة على قاعدة البيانات.
- Statement: إرسال استعلام SQL إلى قاعدة البيانات.
- ResultSet: تصفح النتائج المستردة من قاعدة البيانات في حالة اختيار البيانات.
Database Configuration
سنقرأ التكوين التفصيلي لقاعدة البيانات من الملفات ، حتى نتمكن من التبديل بسهولة من Oracle إلى MySQL والعكس عن طريق تغيير التفاصيل التالية:<فئة الكود = "تعليقات باش" النمط = "-webkit-box-shadow: لا شيء! خلفية: لا شيء! نصف قطر الحدود: 0px !مهم ؛ الحدود: 0px !مهم ؛ أسفل: تلقائي !مهم ؛ مربع الظل: لا شيء!مهم; مربع التحجيم: مربع المحتوى!مهم; الاتجاه: LTR!مهم; عرض: مضمن !مهم ؛ تعويم: لا شيء!مهم; عائلة الخط: كونسولاس, 'بيتستريم فيرا بلا مونو', 'ساعي جديد', ساعي, حافلة صغيرة!مهم; حجم الخط: 1em!مهم; امتداد الخط: يرث. متغير الخط: موروث ؛ الارتفاع: تلقائي !مهم ؛ اليسار: تلقائي !مهم ؛ ارتفاع الخط: 1.1em!مهم ؛ الهامش: 0px !مهم ؛ الخطوط العريضة: 0px !مهم ؛ الفائض: مرئي!مهم ؛ الحشو: 0px !مهم ؛ الموقف: ثابت!مهم; اليمين: تلقائي !مهم ؛ أعلى: تلقائي !مهم ؛ محاذاة عمودية: خط الأساس !مهم ؛ العرض: تلقائي !مهم ؛" >#mysql خصائص قاعدة البيانات
<فئة الكود = "تعليقات باش" النمط = "-webkit-box-shadow: لا شيء! خلفية: لا شيء! نصف قطر الحدود: 0px !مهم ؛ الحدود: 0px !مهم ؛ أسفل: تلقائي !مهم ؛ مربع الظل: لا شيء!مهم; مربع التحجيم: مربع المحتوى!مهم; الاتجاه: LTR!مهم; عرض: مضمن !مهم ؛ تعويم: لا شيء!مهم; عائلة الخط: كونسولاس, 'بيتستريم فيرا بلا مونو', 'ساعي جديد', ساعي, حافلة صغيرة!مهم; حجم الخط: 1em!مهم; امتداد الخط: يرث. متغير الخط: موروث ؛ الارتفاع: تلقائي !مهم ؛ اليسار: تلقائي !مهم ؛ ارتفاع الخط: 1.1em!مهم ؛ الهامش: 0px !مهم ؛ الخطوط العريضة: 0px !مهم ؛ الفائض: مرئي!مهم ؛ الحشو: 0px !مهم ؛ الموقف: ثابت!مهم; اليمين: تلقائي !مهم ؛ أعلى: تلقائي !مهم ؛ محاذاة عمودية: خط الأساس !مهم ؛ العرض: تلقائي !مهم ؛" >#DB_DRIVER_CLASS=com.mysql.jdbc.Driver
<فئة الكود = "تعليقات باش" النمط = "-webkit-box-shadow: لا شيء! خلفية: لا شيء! نصف قطر الحدود: 0px !مهم ؛ الحدود: 0px !مهم ؛ أسفل: تلقائي !مهم ؛ مربع الظل: لا شيء!مهم; مربع التحجيم: مربع المحتوى!مهم; الاتجاه: LTR!مهم; عرض: مضمن !مهم ؛ تعويم: لا شيء!مهم; عائلة الخط: كونسولاس, 'بيتستريم فيرا بلا مونو', 'ساعي جديد', ساعي, حافلة صغيرة!مهم; حجم الخط: 1em!مهم; امتداد الخط: يرث. متغير الخط: موروث ؛ الارتفاع: تلقائي !مهم ؛ اليسار: تلقائي !مهم ؛ ارتفاع الخط: 1.1em!مهم ؛ الهامش: 0px !مهم ؛ الخطوط العريضة: 0px !مهم ؛ الفائض: مرئي!مهم ؛ الحشو: 0px !مهم ؛ الموقف: ثابت!مهم; اليمين: تلقائي !مهم ؛ أعلى: تلقائي !مهم ؛ محاذاة عمودية: خط الأساس !مهم ؛ العرض: تلقائي !مهم ؛" >#DB_URL=jdbc:mysql://localhost:3306/UserDB
<فئة الكود = "تعليقات باش" النمط = "-webkit-box-shadow: لا شيء! خلفية: لا شيء! نصف قطر الحدود: 0px !مهم ؛ الحدود: 0px !مهم ؛ أسفل: تلقائي !مهم ؛ مربع الظل: لا شيء!مهم; مربع التحجيم: مربع المحتوى!مهم; الاتجاه: LTR!مهم; عرض: مضمن !مهم ؛ تعويم: لا شيء!مهم; عائلة الخط: كونسولاس, 'بيتستريم فيرا بلا مونو', 'ساعي جديد', ساعي, حافلة صغيرة!مهم; حجم الخط: 1em!مهم; امتداد الخط: يرث. متغير الخط: موروث ؛ الارتفاع: تلقائي !مهم ؛ اليسار: تلقائي !مهم ؛ ارتفاع الخط: 1.1em!مهم ؛ الهامش: 0px !مهم ؛ الخطوط العريضة: 0px !مهم ؛ الفائض: مرئي!مهم ؛ الحشو: 0px !مهم ؛ الموقف: ثابت!مهم; اليمين: تلقائي !مهم ؛ أعلى: تلقائي !مهم ؛ محاذاة عمودية: خط الأساس !مهم ؛ العرض: تلقائي !مهم ؛" >#DB_USERNAME=usermysql
<فئة الكود = "تعليقات باش" النمط = "-webkit-box-shadow: لا شيء! خلفية: لا شيء! نصف قطر الحدود: 0px !مهم ؛ الحدود: 0px !مهم ؛ أسفل: تلقائي !مهم ؛ مربع الظل: لا شيء!مهم; مربع التحجيم: مربع المحتوى!مهم; الاتجاه: LTR!مهم; عرض: مضمن !مهم ؛ تعويم: لا شيء!مهم; عائلة الخط: كونسولاس, 'بيتستريم فيرا بلا مونو', 'ساعي جديد', ساعي, حافلة صغيرة!مهم; حجم الخط: 1em!مهم; امتداد الخط: يرث. متغير الخط: موروث ؛ الارتفاع: تلقائي !مهم ؛ اليسار: تلقائي !مهم ؛ ارتفاع الخط: 1.1em!مهم ؛ الهامش: 0px !مهم ؛ الخطوط العريضة: 0px !مهم ؛ الفائض: مرئي!مهم ؛ الحشو: 0px !مهم ؛ الموقف: ثابت!مهم; اليمين: تلقائي !مهم ؛ أعلى: تلقائي !مهم ؛ محاذاة عمودية: خط الأساس !مهم ؛ العرض: تلقائي !مهم ؛" >#DB_PASSWORD=usermysqlpw
< / div>
<فئة الكود = "تعليقات باش" النمط = "-webkit-box-shadow: لا شيء! خلفية: لا شيء! نصف قطر الحدود: 0px !مهم ؛ الحدود: 0px !مهم ؛ أسفل: تلقائي !مهم ؛ مربع الظل: لا شيء!مهم; مربع التحجيم: مربع المحتوى!مهم; الاتجاه: LTR!مهم; عرض: مضمن !مهم ؛ تعويم: لا شيء!مهم; عائلة الخط: كونسولاس, 'بيتستريم فيرا بلا مونو', 'ساعي جديد', ساعي, حافلة صغيرة!مهم; حجم الخط: 1em!مهم; امتداد الخط: يرث. متغير الخط: موروث ؛ الارتفاع: تلقائي !مهم ؛ اليسار: تلقائي !مهم ؛ ارتفاع الخط: 1.1em!مهم ؛ الهامش: 0px !مهم ؛ الخطوط العريضة: 0px !مهم ؛ الفائض: مرئي!مهم ؛ الحشو: 0px !مهم ؛ الموقف: ثابت!مهم; اليمين: تلقائي !مهم ؛ أعلى: تلقائي !مهم ؛ محاذاة عمودية: خط الأساس !مهم ؛ العرض: تلقائي !مهم ؛" >#Oracle خصائص قاعدة البيانات
<فئة الكود = "bash plain" style = "-webkit-box-shadow: لا شيء! خلفية: لا شيء! نصف قطر الحدود: 0px !مهم ؛ الحدود: 0px !مهم ؛ أسفل: تلقائي !مهم ؛ مربع الظل: لا شيء!مهم; مربع التحجيم: مربع المحتوى!مهم; الاتجاه: LTR!مهم; عرض: مضمن !مهم ؛ تعويم: لا شيء!مهم; عائلة الخط: كونسولاس, 'بيتستريم فيرا بلا مونو', 'ساعي جديد', ساعي, حافلة صغيرة!مهم; حجم الخط: 1em!مهم; امتداد الخط: يرث. متغير الخط: موروث ؛ الارتفاع: تلقائي !مهم ؛ اليسار: تلقائي !مهم ؛ ارتفاع الخط: 1.1em!مهم ؛ الهامش: 0px !مهم ؛ الخطوط العريضة: 0px !مهم ؛ الفائض: مرئي!مهم ؛ الحشو: 0px !مهم ؛ الموقف: ثابت!مهم; اليمين: تلقائي !مهم ؛ أعلى: تلقائي !مهم ؛ محاذاة عمودية: خط الأساس !مهم ؛ العرض: تلقائي !مهم ؛" >DB_DRIVER_CLASS=oracle.jdbc.driver.OracleDriver
<فئة الكود = "bash plain" style = "-webkit-box-shadow: لا شيء! خلفية: لا شيء! نصف قطر الحدود: 0px !مهم ؛ الحدود: 0px !مهم ؛ أسفل: تلقائي !مهم ؛ مربع الظل: لا شيء!مهم; مربع التحجيم: مربع المحتوى!مهم; الاتجاه: LTR!مهم; عرض: مضمن !مهم ؛ تعويم: لا شيء!مهم; عائلة الخط: كونسولاس, 'بيتستريم فيرا بلا مونو', 'ساعي جديد', ساعي, حافلة صغيرة!مهم; حجم الخط: 1em!مهم; امتداد الخط: يرث. متغير الخط: موروث ؛ الارتفاع: تلقائي !مهم ؛ اليسار: تلقائي !مهم ؛ ارتفاع الخط: 1.1em!مهم ؛ الهامش: 0px !مهم ؛ الخطوط العريضة: 0px !مهم ؛ الفائض: مرئي!مهم ؛ الحشو: 0px !مهم ؛ الموقف: ثابت!مهم; اليمين: تلقائي !مهم ؛ أعلى: تلقائي !مهم ؛ محاذاة عمودية: خط الأساس !مهم ؛ العرض: تلقائي !مهم ؛" >DB_URL = jdbc: أوراكل: رقيق: @localhost: 1571: MyDBSID< / code>< / div>
<فئة الكود = "bash plain" style = "-webkit-box-shadow: لا شيء! خلفية: لا شيء! نصف قطر الحدود: 0px !مهم ؛ الحدود: 0px !مهم ؛ أسفل: تلقائي !مهم ؛ مربع الظل: لا شيء!مهم; مربع التحجيم: مربع المحتوى!مهم; الاتجاه: LTR!مهم; عرض: مضمن !مهم ؛ تعويم: لا شيء!مهم; عائلة الخط: كونسولاس, 'بيتستريم فيرا بلا مونو', 'ساعي جديد', ساعي, حافلة صغيرة!مهم; حجم الخط: 1em!مهم; امتداد الخط: يرث. متغير الخط: موروث ؛ الارتفاع: تلقائي !مهم ؛ اليسار: تلقائي !مهم ؛ ارتفاع الخط: 1.1em!مهم ؛ الهامش: 0px !مهم ؛ الخطوط العريضة: 0px !مهم ؛ الفائض: مرئي!مهم ؛ الحشو: 0px !مهم ؛ الموقف: ثابت!مهم; اليمين: تلقائي !مهم ؛ أعلى: تلقائي !مهم ؛ محاذاة عمودية: خط الأساس !مهم ؛ العرض: تلقائي !مهم ؛" >DB_USERNAME=useroracle
<فئة الكود = "bash plain" style = "-webkit-box-shadow: لا شيء! خلفية: لا شيء! نصف قطر الحدود: 0px !مهم ؛ الحدود: 0px !مهم ؛ أسفل: تلقائي !مهم ؛ مربع الظل: لا شيء!مهم; مربع التحجيم: مربع المحتوى!مهم; الاتجاه: LTR!مهم; عرض: مضمن !مهم ؛ تعويم: لا شيء!مهم; عائلة الخط: كونسولاس, 'بيتستريم فيرا بلا مونو', 'ساعي جديد', ساعي, حافلة صغيرة!مهم; حجم الخط: 1em!مهم; امتداد الخط: يرث. متغير الخط: موروث ؛ الارتفاع: تلقائي !مهم ؛ اليسار: تلقائي !مهم ؛ ارتفاع الخط: 1.1em!مهم ؛ الهامش: 0px !مهم ؛ الخطوط العريضة: 0px !مهم ؛ الفائض: مرئي!مهم ؛ الحشو: 0px !مهم ؛ الموقف: ثابت!مهم; اليمين: تلقائي !مهم ؛ أعلى: تلقائي !مهم ؛ محاذاة عمودية: خط الأساس !مهم ؛ العرض: تلقائي !مهم ؛" >DB_PASSWORD = useroraclepw< / code>< / div>
التكوين هو أهم شيء عند استخدام واجهة برمجة تطبيقات JDBC. أول شيء فعله هو اختيار فئة السائق التي يجب استخدامها. بالنسبة إلى MySQL ، يكون برنامج التشغيل < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >com.mysql.jdbc.Driver وبالنسبة لأوراكل ، فهي كذلك < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >oracle.jdbc.driver.OracleDriver. كلاهما ينفذ الواجهة < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >java.sql. سائق < / سبان>. يمكنك العثور على هاتين الفئتين في jar.
الشيء الثاني المهم هو عنوان url لاتصال قاعدة البيانات. كل برنامج تشغيل لديه تكوين عنوان url الخاص به ولكن لديهم نفس التكوين. < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >المضيف < / الامتداد > ،   < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" > المنفذ < / span > et   < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >مخطط في عنوان URL للاتصال. لتسجيل الدخول إلى MySQL ، يكون التنسيق < span style = "عائلة الخط:" ساعي جديد" , " ساعي" صغيره; حجم الخط: x-small;" >jdbc:mysql://< المضيف>:< ميناء>:< رسم بياني> < / span>.
تفاصيل مهمة أخرى هي اسم المستخدم وكلمة المرور للاتصال بقاعدة البيانات.
التكوين هو أهم شيء عند استخدام واجهة برمجة تطبيقات JDBC. أول شيء فعله هو اختيار فئة السائق التي يجب استخدامها. بالنسبة إلى MySQL ، يكون برنامج التشغيل < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >com.mysql.jdbc.Driver وبالنسبة لأوراكل ، فهي كذلك < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >oracle.jdbc.driver.OracleDriver. كلاهما ينفذ الواجهة < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >java.sql. سائق < / سبان>. يمكنك العثور على هاتين الفئتين في jar.
الشيء الثاني المهم هو عنوان url لاتصال قاعدة البيانات. كل برنامج تشغيل لديه تكوين عنوان url الخاص به ولكن لديهم نفس التكوين. < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >المضيف < / الامتداد > ،   < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" > المنفذ < / span > et   < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >مخطط في عنوان URL للاتصال. لتسجيل الدخول إلى MySQL ، يكون التنسيق < span style = "عائلة الخط:" ساعي جديد" , " ساعي" صغيره; حجم الخط: x-small;" >jdbc:mysql://< المضيف>:< ميناء>:< رسم بياني> < / span>.
تفاصيل مهمة أخرى هي اسم المستخدم وكلمة المرور للاتصال بقاعدة البيانات.
الاتصال بقاعدة بيانات MySQL
يقرأ هذا البرنامج الخصائص وينشئ الاتصال مع MySQL.
استيراد java.io.FileInputStream;
import java.io.IOException;
استيراد java.sql.Connection;
استيراد java.sql.DriverManager ؛
استيراد java.sql.SQLException ؛
import java.util.properties;
من الفئة العامة DBConnection {
اتصال ثابت عام getConnection () {
خصائص الدعائم = خصائص جديدة ();
FileInputStream fis = null ؛
اتصال يخدع = فارغ ؛
try {
fis = new FileInputStream("db.properties");
props.load (fis) ؛
// تحميل فئة برنامج التشغيل < br / > Class.forName (props.getProperty ("DB_DRIVER_CLASS")) ؛
// إنشاء الاتصال الآن
con = DriverManager.getConnection(props.getProperty("DB_URL"),
props.getProperty("DB_USERNAME"),
props.getProperty("DB_PASSWORD"));
} الصيد (IOException | كلاس نو فاونديكسسيبشن | SQLException e) {
// TODO كتلة الصيد التي تم إنشاؤها تلقائيا
e.printStackTrace ();
} < br / > يخدع العودة ؛
}
}
< / pre>أولا ، نقرأ تكوين قاعدة البيانات من ملف الخاصية ، ثم نقوم بتحميل برنامج تشغيل JDBC واستخدام DriverManager لإنشاء الاتصال. يعد استدعاء الأسلوب Class.forName() أمرا مهما لأنه ينشئ مثيلا للفئة ، وليس مع عامل التشغيل الجديد ، ولكنه يقوم فقط بإنشائه ولا يستخدمه. سيتم إنشاء الكائن في الذاكرة وتوصيله من تلقاء نفسه ب DriverManager.
لإنشاء الاتصال بقاعدة بيانات MySQL ، تحتاج إلى إنشاء مثيل لكائن فئة الاتصال عن طريق تحديد عنوان url للوصول إليه. يقوم أسلوب getConnection() بإنشاء الاتصال باستخدام:
- اسم قاعدة البيانات عن طريق تحديد url
- اسم المستخدم
- كلمة المرور