الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

درس عن JDBC للاخوان

مغلق
بدأه Husseinjava في 12 سبتمبر 2003 · 6 رد · 5,990 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم شباب

هذه المحاضرة إن شاء الله تفي بالغرض

JDBC هو اختصار لـ ( Java data base connectivity) و هي بالحقيقة مجموعة من الـ ( API ) موجودة داخل الحزمة ( java.sql & javax.sql ) و هذه الـ API تخليك تتصل باي قاعدة بيانات و تطبق عليها لغة الاستعلام SQL و في ما يلي الخطوات السبعة و المتسلسلة حتى تستعمل الـ JDBC :-

1- تضمين حزمة الـ java.sql :

و هذا يتم عن طريق الـجملة التالية

import java.sql;

2- تحميل JDBC driver

يا اخوان هنا يجب الانتباه ان لكل نوع من قواعد البيانات driver خاص بي يعني driver الاوراكل يختلف عن driver الاكسس و هكذا وكل شركة متخصصة في قواعد البيانات يعمل لها driver خاص الها حتى تتصل بـ JDBC يعني مثلا في نوع من قواعد البيانات اسمه Sybex لازم يكون الـ driver متوفر و الخاص بقاعدة بيانات Sybex حتى تتعامل مع الـ JDBC.

اما تطريقة تحميل الـ dirver فهي تتم بالجملة التالية

Class.forName("dirvername");

dirvername هو الي راح يختلف مع اختلاف قواعد البيانات و هو بالحقيقة class موجود داخل حزمة وحتى تحصل على محلومات اكثر و تعرف كل dirvers الخاصة بـ JDBC روح الى هذا الموقع http://www.javasoft.com/products/jdbc/jdbc...bc.drivers.html

3- الربط مع قاعدة البيانات

و هنا ايضا طريقة الربط تختلف من قاعدة الى اخرى و ذلك بالاختلاف الـ driver الخاص بالقاعدة.

ولكن بصورة عامة

Connection con=DriverManager("******");

في مكان النجوم يكمن اختلا ف الربط

ففي حالة الربط مع قاعدة بيانات الاكسس تكتب التالي

Connection con=DriverManager("jdbc:odbc:dbname");

و حتى تفعل الـ dbname لازم تروح الى لوحة التحكم الخاصة بالوندوز و تذهب الى odbc data sources و هناك تضيف قاعدة البيانات الى تريد تستعمله

اما في حالة الاوراكل فتستعمل الاتي

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

و هنا تتصل بقاعدة البيانات كانه انت تتصل ب جهاز خادم

4- تحدد الجملة الاستعلام

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

Statement statement=con.createStatement();

5- تنفيذ جملة الاستعلام

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

ResultSet rs=statement.executeQuery("SELECT * FROM table WHERE age=20");

اخوان هنا نتائج الاستعلام سوف تخزن في داخل rs و اعتبرها مثل المصفوفة اقل حجم لها هو صفر و اكبر حجم لها هو حجم الجدول نفسه. و طبعا ايعازات UPDATE او DELETE في الـ SQL لا يحتاج ارجاع معلومات في rs لهذا راجع الـ documentation الخاصة بـ الحزمة java.sql.

6- استرجاع المعلومات

اخوان المعلومات موجودة الان داخل rs و لو تراجع java.sql documentation راح تشوف methods اكثر من الشي الي تحتاجه و لكن انته بصورة عامة تستعمل ما ياتي:

while(rs.next())

{

rs.getString("name");

rs.getInt("age");

}

7- اغلاق rs & statement & con

كما يلي

rs.close();

statement.close();

con.close();

وهذا فائدته حتى تخلي الذاكرة مرتاحة. و ما فيها شي غير مستعمل

اخوان هذه هي الـ JDBC واي استفسار اني حاضر و في خدمتكم

حسين

#2

Husseinjava عندي استفسار واحد ...

وهو كيف أشكرك :)

#3

thx for u help

ahabdeen.jpg

<marquee>

مش موجود بصفة دايمة للامتحانات

</marquee>

#4

الله يعطيك العافيه اخوي حسين

والله انك كفيت ووفيت وما قصرت

وان شاء الله نقدر نخدمك ونرجع بعض افضالك علينا

#5

اخوي Husseinjava

اسف على السوال هذا بس ودي اتاكد !!!!!!

هل هذا الكلام (اي الربط مع قواعد البيانات بواسطه JDBC )ينفع مع برنامج

JBelder3

والضاهر انه نسخه جامعيه (اي مخصصه للجامعات)

وشكرا لك على كل حال

#6

ما ادري يا اخوان انا طبقت الكود اعلاه بس ما طبق ويطلع اخطاء معضمها بتحدث عن

try & catch

و

اخطاء

exotion

وبالنسبه للكود الذي كتبته هو كالتالي

package ProjectF;

import java.sql.*;

import javax.swing.*;

public class Syn {

String s1,s2;

int n1;

Connection con;

public Syn() {

try

{

Class.forName("sun.jdbc.odbc.access");

}

catch(Exception df){}

try{

Connection con = DriverManager.getConnection("jdbc : odbc : project1");

}

catch(SQLException e){}

Statement statement =con.createStatement();

ResultSet rs = statement.executeQuery("SELECT * FROM PROJECT1 ");

while(rs.next())

{s1=rs.getString("fname");

s2=rs.getString("Lname");

n1=rs.getInt("ssn");

System.out.println(s1);

System.out.println(s2);

System.out.println(n1);

}

rs.close();

statement.close();

con.close();

}

public static void main(String[] args) {

Syn syn = new Syn();

syn.invokedStandalone = true;

}

private boolean invokedStandalone = false;

}

مع العلم ان قواعد البيانات هي اكسس

#7

yslamo kter wala ya best friend :clapping: :clapping: :clapping: :clapping: :clapping: :clapping: :clapping: :clapping: :clapping: :clapping:

هذا الموضوع مغلق.

مواضيع مشابهة