تعرف على مزود قواعد البيانات JDBC

إرسال مساهمة في موضوع

اذهب الى الأسفل

تعرف على مزود قواعد البيانات JDBC

مُساهمة من طرف زهراء في الإثنين أكتوبر 08, 2018 5:37 pm

بسم الله الرحمن الرحيم 

اهلا بكم 

مقدمة :

JDBC API هو واجهة برمجة تطبيقات جافا التي يمكنها الوصول إلى قواعد البيانات العلائقية. وهي اختصار لجملة Java Database Connectivity حيث توفر تلك الواجهة العديد من مزودات اتصالات بين لغة برمجة Java وقواعد البيانات فهي تقوم بالتالى :

1_ فتح اتصال مع قاعدة البيانات 
2_إنشاء عبارات الاستعلامات SQL
3_ تنفيذ استعلامات SQL
4_عرض وتعديل السجلات الناتجة 

ويمكنك استخدام تلك الواجهة فى معظم تطبيقات الجافا سواء مثل :

Java Applications

Java Applets

Java Servlets

Java ServerPages (JSPs)

Enterprise JavaBeans (EJBs).





_أهم الواجهات و الفئات interfaces & classes  لتى يوفرها مزود الاتصال JDBC

1_ DriverManager : تلك الفئة تحتوي على drivers سائق الاتصال لكل نوع من قاعدة البيانات
2_Driver : وهو السائق الذى يعالج الاتصالات مع خادم قاعدة البيانات.
3_ Connection : تلك الفئة التى تحتوي على جميع طرق الاتصال بقاعدة البيانات.
4_ Statement : وهي الفئة التى تستخدم لانشاء وتنفيذ عبارات SQL اللازمة للتعامل مع حقول و جداول قاعدة البيانات .
5_ResultSet: يحتفظ بالبيانات المستردة من قاعدة بيانات بعد تنفيذ استعلام SQL باستخدام كائنات بيان.
6_ SQLException: يعالج أي أخطاء تحدث في تطبيق قاعدة بيانات.

_ حزمة JDBC 4.0 


java.sql و javax.sql هي الحزم الأساسية لـ JDBC 4.0. هذا هو أحدث إصدار JDBC متوفر فى الجافا حتى كتابة هذا المقال التعليمي. يقدم الفئات الرئيسية للتفاعل مع مصادر البيانات الخاصة بك.

تتضمن الميزات الجديدة في هذه الحزم تغييرات في المناطق التالية -


  • تحميل سائق تشغيل قاعدة البيانات driver تلقائي.
  • تحسينات معالجة الاستثناء.
  • تعزيز وظائف BLOB / CLOB.
  • تحسينات واجهة Connection & statement.
  • وصول SQL ROWID.
  • دعم نوع بيانات XML 2003 XML.


_ الخطوات اللازمة لانشاء اتصال مع قاعدة البيانات باستخدام JDBC

يوجد ست خطوات لازمة لفتح اتصال مع اى قاعدة بيانات باستخدام JDBC وهي على النحو التالى :

1_استيراد الحزم التي تحتوي على فئات JDBC اللازمة لبرمجة قواعد البيانات. في معظم الأحيان على النحو التالى :
الكود:
import java.sql.*;

2_تسجيل وتهيئة سائق الاتصال JDBC driver بحيث يمكنك فتح قناة الاتصال بقاعدة البيانات وذلك على النحو التالى :
الكود:
Class.forName("com.mysql.jdbc.Driver");

3_فتح اتصال: يتطلب استخدام الأسلوب DriverManager.getConnection () لإنشاء كائن اتصال ، والذي يمثل اتصال فعلي مع قاعدة البيانات.
الكود:
conn = DriverManager.getConnection(DB_URL,USER,PASS);

4_تنفيذ الاستعلام: يتطلب استخدام كائن من نوع Statement لبناء وإرسال عبارة SQL إلى قاعدة البيانات.
الكود:
stmt = conn.createStatement();
      String sql;
      sql = "SELECT id, first, last, age FROM Employees";
      ResultSet rs = stmt.executeQuery(sql);

5_استخراج البيانات من مجموعة النتائج: يتطلب استخدام الأسلوب ResultSet.getXXX () المناسب لاسترداد البيانات من مجموعة النتائج.
الكود:
while(rs.next()){
         //Retrieve by column name
         int id  = rs.getInt("id");
         int age = rs.getInt("age");
         String first = rs.getString("first");
         String last = rs.getString("last");

         //Display values
         System.out.print("ID: " + id);
         System.out.print(", Age: " + age);
         System.out.print(", First: " + first);
         System.out.println(", Last: " + last);
      }

6_ إغلاق جميع موارد قواعد البيانات بشكل صريح .
الكود:
rs.close();
      stmt.close();
      conn.close();

واليك الكود بالكامل :

الكود:
//STEP 1. Import required packages
import java.sql.*;

public class FirstExample {
   // JDBC driver name and database URL
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost/EMP";

   //  Database credentials
   static final String USER = "username";
   static final String PASS = "password";
  
   public static void main(String[] args) {
   Connection conn = null;
   Statement stmt = null;
   try{
      //STEP 2: Register JDBC driver
      Class.forName("com.mysql.jdbc.Driver");

      //STEP 3: Open a connection
      System.out.println("Connecting to database...");
      conn = DriverManager.getConnection(DB_URL,USER,PASS);

      //STEP 4: Execute a query
      System.out.println("Creating statement...");
      stmt = conn.createStatement();
      String sql;
      sql = "SELECT id, first, last, age FROM Employees";
      ResultSet rs = stmt.executeQuery(sql);

      //STEP 5: Extract data from result set
      while(rs.next()){
         //Retrieve by column name
         int id  = rs.getInt("id");
         int age = rs.getInt("age");
         String first = rs.getString("first");
         String last = rs.getString("last");

         //Display values
         System.out.print("ID: " + id);
         System.out.print(", Age: " + age);
         System.out.print(", First: " + first);
         System.out.println(", Last: " + last);
      }
      //STEP 6: Clean-up environment
      rs.close();
      stmt.close();
      conn.close();
   }catch(SQLException se){
      //Handle errors for JDBC
      se.printStackTrace();
   }catch(Exception e){
      //Handle errors for Class.forName
      e.printStackTrace();
   }finally{
      //finally block used to close resources
      try{
         if(stmt!=null)
            stmt.close();
      }catch(SQLException se2){
      }// nothing we can do
      try{
         if(conn!=null)
            conn.close();
      }catch(SQLException se){
         se.printStackTrace();
      }//end finally try
   }//end try
   System.out.println("Goodbye!");
}//end main
}//end FirstExample
avatar
زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 347
النقاط : 571
التقيم : 38
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
تستطيع الرد على المواضيع في هذا المنتدى