تعلم كيفية الاتصال بقواعد بيانات Oracle من خلال تطبيقات الجافا
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: قواعد البيانات JAVA JDBC
صفحة 1 من اصل 1 • شاطر
تعلم كيفية الاتصال بقواعد بيانات Oracle من خلال تطبيقات الجافا
بسم الله الرحمن الرحيم
أهلا وسهلا بكم إخوانى الكرام .... ما زلنا فى دروس قواعد البيانات من خلال تطبيقات الجافا و توفر هذه المقالة أمثلة عن كيفية تأسيس اتصال مع خادم قواعد بيانات أوراكل و لنفترض انه لديك بالفعل نسخة من قاعدة بيانات أوراكل مثبتة على جهازك مثل Oracle Database 11g Express Edition.
أولا : تحميل سائق الاتصال JDBC driver الخاص بقواعد بيانات أوراكل
أنقر هنا للدخول على صحفة سائق الاتصال JDBC driver الخاصة بقواعد بيانات أوراكل حدد إصدار برنامج التشغيل JDBC الذى يطابق محرك قاعدة البيانات أوراكل المثبتة على جهازك.
و نحن هنا حددنا قاعدة بيانات أوراكل Oracle Database 11g الإصدار 2 (11.2.0.3) وهو ما يقودنا إلى صفحة التحميل لملف jar وعند دخولك لتلك الصفحة ستجد العديد من الملفات jar الذي قد يسبب الارتباك. ومع ذلك، فإن ملف jar الرئيسي هو ojdbc5.jar لاصدار الجافا 5 أو ojdbc6.jar لاصدار الجافا 6 فما فوق ....
و بما أننا نستخدم أصدار الجافا 6 سنقوم بتحميل الملف ojdbc6.jar من خلال النقر على رابط التحميل و قبول اتفاقية الترخيص في الجزء العلوي بعد ذلك سنقوم بوضع الملف ojdbc6.jar كالمعتاد فى مسار التطبيق classpath
ملاحظة: يتطلب أوراكل أن يكون لديك حساب أوراكل للتحميل، لذلك قد تضطر إلى تسجيل حساب جديد إذا لم يكن لديك واحد بالفعل .
ثانيا : انواع الاتصال المختلفة التى يوفرها JDBC driver
يوفر سائق الاتصال JDBC driver أربعه أنواع مختلفة للاتصال بقواعد بيانات أوراكل :
- Thin Driver ................... ويستخدم هذا النوع للاستخدام من جانب العميل دون تثبيت أوراكل
- OCI Driver ................... و يستخدم هذا النوع للاستخدام من جانب العميل مع تثبيت أوراكل
- Server-Side Thin Driver ..هو نفس Thin Driver ولكن يعمل داخل خادم أوراكل للوصول إلى ملقم بعيد
- Server-Side Internal Driver ... تشغيل داخل الخادم
لذلك إذا كان JDBC client الخاص بك وخادم قاعدة البيانات أوراكل يتم تشغيلها على نفس الجهاز يجب عليك استخدام OCI Driver لأنها أسرع بكثير من سائق Thin Driver هذا من ناحية أما من ناحية أخرى فإن OCI Driver يمكن استخدام عملية الاتصالات بين IPC في حين أن Thin Driver يمكن استخدام اجراء الاتصال من خلال الشبكة فقط
ثالثا : بناء نص الاتصال URL بقاعدة البيانات أوراكل
يتم بناء جملة URL لقاعدة بيانات أوراكل على النحو التالى :
jdbc:oracle:<drivertype>:@<database>
jdbc:oracle:<drivertype>:<user>/<password>@<database>
حيث أن :
- drivertype .... يحدد نوع سائق الاتصال أما أن يكون thin أو oci أو kprb.
- database .... قاعدة بيانات أوراكل و يمكن أن تكون فى شكل hostname:port:SID أو تكون فى شكل tnsnames.ora
على سبيل المثال :
إذا كنت ترغب في الاتصال بقاعدة بيانات أوراكل مع SID productDB و التى لها أسم المستخدم tiger و كلمة المرور scott من خلال المنفذ الافتراضي و على المضيف dbHost باستخدام Thin Driver يمكنك إنشاء عنوان URL على النحو التالي :
- الكود:
String url = “jdbc:oracle:thin:tiger/scott@dbHost:1521:productDB”
و إن كنت تريد أن يكون نوع الاتصال OCI Driver
على شبكة الانترنت
- الكود:
String url = “jdbc:oracle:oci:tiger/scott@dbHost:1521:productDB”
على السرفر المحلى localhost
- الكود:
String url = “jdbc:oracle:oci:tiger/scott@localhost:1521:productDB”
أما اذا كان لديك TNSNAMES في ملف TNSNAMES.ORA، يمكنك إنشاء عنوان URL على النحو التالي:
- الكود:
String url = “jdbc:oracle:oci:@productionDB”
و أن كنت تستخدم Server-Side Internal Driver
- الكود:
String url = "jdbc:oracle:kprb:"
رابعا : تسجيل سائق الاتصال الى التطبيق
من أجل تسجيل سائق الاتصال الى التطبيق يتم ذلك بأحد الطرق التالية :
- الكود:
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
أو
- الكود:
Class.forName("oracle.jdbc.OracleDriver");
خامسا :تأسيس اتصال مع قواعد بيانات أوراكل
من خلال سائق الاتصال JDBC، يمكننا تأسيس اتصال بقاعدة البيانات عن طريق استدعاء الاسلوب getConnection من الطبقة DriverManager. هناك ثلاثة إصدارات من هذا الأسلوب:
- الكود:
static Connection getConnection(String url)
static Connection getConnection(String url, Properties info)
static Connection getConnection(String url, String user, String password)
ولذا فإننا يمكن أن يكون لها ثلاث طرق لإجراء اتصال على النحو التالي:
- باستخدام URL فقط على كل شيء
في هذه الطريقة، ونحن تحديد جميع خصائص الاتصال في سلسلة URL واحد، على سبيل المثال:
- الكود:
String dbURL = "jdbc:oracle:thin:tiger/scott@localhost:1521:productDB";
Connection conn = DriverManager.getConnection(dbURL);
if (conn != null) {
System.out.println("Connected");
}
- باستخدام URL، اسم المستخدم وكلمة المرور
في هذه الطريقة، ونحن تمرير اسم المستخدم وكلمة المرور كوسائط إضافية إلى أسلوب getConnetion ()، على سبيل المثال:
- الكود:
String dbURL = "jdbc:oracle:thin:@localhost:1521:productDB";
String username = "tiger";
String password = "scott";
Connection conn = DriverManager.getConnection(dbURL, username, password);
- باستخدام URL والكائن خصائص Properties
في هذه الطريقة، ونحن نستخدم كائن java.util.Properties لحفظ المستخدم، كلمة المرور و خصائص إضافية أخرى به على سبيل المثال:
- الكود:
String dbURL = "jdbc:oracle:oci:@ProductDB";
Properties properties = new Properties();
properties.put("user", "scott");
properties.put("password", "tiger");
properties.put("defaultRowPrefetch", "20");
Connection conn = DriverManager.getConnection(dbURL, properties);
سادسا : انشاء مثال كامل
الان سنقوم بإنشاء بحيث يحدد ثلاث اتصالات مختلفة في 3 طرق المذكورة أعلاه، و أخيرا إغلاق كافة الاتصالات على النحو التالى :
- الكود:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class JdbcOracleConnection {
public static void main(String[] args) {
Connection conn1 = null;
Connection conn2 = null;
Connection conn3 = null;
try {
// registers Oracle JDBC driver - though this is no longer required
// since JDBC 4.0, but added here for backward compatibility
Class.forName("oracle.jdbc.OracleDriver");
// METHOD #1
String dbURL1 = "jdbc:oracle:thin:tiger/scott@localhost:1521:productDB";
conn1 = DriverManager.getConnection(dbURL1);
if (conn1 != null) {
System.out.println("Connected with connection #1");
}
// METHOD #2
String dbURL2 = "jdbc:oracle:thin:@localhost:1521:productDB";
String username = "tiger";
String password = "scott";
conn2 = DriverManager.getConnection(dbURL2, username, password);
if (conn2 != null) {
System.out.println("Connected with connection #2");
}
// METHOD #3
String dbURL3 = "jdbc:oracle:oci:@ProductDB";
Properties properties = new Properties();
properties.put("user", "tiger");
properties.put("password", "scott");
properties.put("defaultRowPrefetch", "20");
conn3 = DriverManager.getConnection(dbURL3, properties);
if (conn3 != null) {
System.out.println("Connected with connection #3");
}
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
try {
if (conn1 != null && !conn1.isClosed()) {
conn1.close();
}
if (conn2 != null && !conn2.isClosed()) {
conn2.close();
}
if (conn3 != null && !conn3.isClosed()) {
conn3.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
}
و فى النهاية تحياتى لكم بالتوفيق
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: تعلم كيفية الاتصال بقواعد بيانات Oracle من خلال تطبيقات الجافا
سأقوم بتطبيقها قريباً ^^
جزاك الله خير
جزاك الله خير
StarPixel- ..
- تاريخ التسجيل : 22/01/2014
المساهمات : 15
النقاط : 15
التقيم : 0
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: قواعد البيانات JAVA JDBC
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
الثلاثاء مارس 26, 2024 6:26 pm من طرف moslema_r
» شركة تنظيف استراحات بالرياض
الأحد مارس 24, 2024 10:49 pm من طرف moslema_r
» كشف تسربات المياه في جدة
السبت مارس 23, 2024 7:23 pm من طرف gmalnagy
» خدمات كشف تسربات المياه بخصم 25% - اتصل الان
السبت مارس 23, 2024 7:22 pm من طرف gmalnagy
» شركة تنظيف ثريات بالرياض
الخميس مارس 21, 2024 7:23 pm من طرف moslema_r
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد
» افضل فني كهربائي منازل بالرياض جودة 100% | اتصل الآن
الأحد مارس 17, 2024 12:36 pm من طرف رانيا حماد