English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
بدء استخدام PostgreSQL في برنامج Java الخاص بنا من قبل، يجب التأكد من إعداد PostgreSQL JDBC و Java على الجهاز. يمكنك الرجوع إلى دليل Java، لمعرفة كيفية تثبيته على جهازك Java. الآن دعونا نتحقق كيفية إعداد driver postgresqljdbc.
تحميل أحدث إصدار من postgresql-(version).jdbc.jar من العنوان التالي postgresql-jdbc تحميل.
أضف ملف jar المصدري postgresql-(VERSION).jar، أو يمكنك استخدامه مع خيار -classpath، كما هو موضح في المثال التالي.
يفرض هذا الجزء أنك تعرف مفهوم javajdbc. إذا لم تكن كذلك، فنحن نوصي بإنفاق نصف ساعة لدراسة دروس JDBC لفهم المفاهيم الموضحة أدناه.
أظهرت هذه الكودات في Java كيفية الاتصال بقاعدة البيانات الموجودة. إذا لم تكن قاعدة البيانات موجودة، فإنها ستُنشأ، وأخيرًا سيتم العودة إلى كائن قاعدة البيانات.
import java.sql.Connection; import java.sql.DriverManager; public class PostgreSQLJDBC { public static void main(String args[]) { Connection c = null; try { Class.forName("org.postgresql.Driver"); c = DriverManager .getConnection("jdbc:postgresql://localhost:5432/testdb", "postgres", "123"); catch (Exception e) { e.printStackTrace(); System.err.println(e.getClass().getName()+": " + e.getMessage()); System.exit(0); } System.out.println("Opened database successfully"); } }
قبل تجميع وتشغيل البرنامج المذكور أعلاه، يرجى العثور على ملف pg_hba.conf في مجلد تثبيت PostgreSQL وإنشاء ملف، وأضف الأسطر التالية:
# الاتصالات المحلية لـ IPv4: host all all 127.0.0.1/32 md5
إذا لم يكن خادم postgres قيد التشغيل، يمكنك تشغيل/إعادة تشغيل خادم postgres باستخدام الأمر التالي:
الآن، دعونا نكتب ونجرب البرنامج المذكور أعلاه للتواصل مع testdb. هنا، نستخدم postgres كمعرف المستخدم استخدام 123 ككلمة المرور للوصول إلى قاعدة البيانات. يمكنك تغييرها بناءً على تكوين وتعيينات قاعدة البيانات. نحن نفترض أيضًا أن إصدار JDBC driver postgresql-9.2-1002.jdbc3.jar متاح في المسار الحالي.
C:\JavaPostgresIntegration>javac PostgreSQLJDBC.java C:\JavaPostgresIntegration>java -cp c:\tools\postgresql-9.2-1002.jdbc3.jar;C:\JavaPostgresIntegration PostgresqlJDBC نجاح في فتح قاعدة البيانات
برنامج Java التالي سيتم استخدامه لإنشاء جدول في قاعدة البيانات المفتوحة مسبقًا. تأكد من عدم وجود هذا الجدول في قاعدة البيانات الهدف.
import java.sql.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class PostgreSQLJDBC { public static void main(String args[]) { Connection c = null; Statement stmt = null; try { Class.forName("org.postgresql.Driver"); c = DriverManager .getConnection("jdbc:postgresql://localhost:5432/testdb", "manisha", "123"); System.out.println("Opened database successfully"); stmt = c.createStatement(); String sql = "CREATE TABLE COMPANY " + "(ID INT PRIMARY KEY NOT NULL," + "NAME TEXT NOT NULL, " + "AGE INT NOT NULL, " + "ADDRESS CHAR(50), " + "SALARY REAL)"; stmt.executeUpdate(sql); stmt.close(); c.close(); } catch ( Exception e ) { System.err.println( e.getClass().getName()+": "+ e.getMessage() ); System.exit(0); } System.out.println("تم إنشاء الجدول بنجاح"); } }
عند تجميع وتنفيذ البرنامج، سيتم إنشاء جدول COMPANY في قاعدة البيانات testdb، وسيتم عرض السطرين التاليين-
تم فتح قاعدة البيانات بنجاح تم إنشاء الجدول بنجاح
برنامج Java التالي يوضح كيفية إنشاء سجلات في جدول COMPANY المذكور أعلاه-
import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class PostgreSQLJDBC { public static void main(String args[]) { Connection c = null; Statement stmt = null; try { Class.forName("org.postgresql.Driver"); c = DriverManager .getConnection("jdbc:postgresql://localhost:5432/testdb", "manisha", "123"); c.setAutoCommit(false); System.out.println("Opened database successfully"); stmt = c.createStatement(); String sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " + "VALUES (1, 'Paul', 32, 'California', 20000.00 );"; stmt.executeUpdate(sql); sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " + "VALUES (2, 'Allen', 25, 'Texas', 15000.00 );"; stmt.executeUpdate(sql); sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " + "VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );"; stmt.executeUpdate(sql); sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " + "VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );"; stmt.executeUpdate(sql); stmt.close(); c.commit(); c.close(); catch (Exception e) { System.err.println( e.getClass().getName()+": "+ e.getMessage() ); System.exit(0); } System.out.println("تم إنشاء السجلات بنجاح"); } }
عندما يتم تجميع وتنفيذ البرنامج المذكور أعلاه، سيتم إنشاء السجلات المحددة في جدول COMPANY، وسيتم عرض السطرين التاليين-
تم فتح قاعدة البيانات بنجاح تم إنشاء السجلات بنجاح
الجدول التالي يوضح كيفية استخراج وتسجيل بيانات من جدول COMPANY الذي تم إنشاؤه في الأمثلة السابقة
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class PostgreSQLJDBC { public static void main(String args[]) { Connection c = null; Statement stmt = null; try { Class.forName("org.postgresql.Driver"); c = DriverManager .getConnection("jdbc:postgresql://localhost:5432/testdb", "manisha", "123"); c.setAutoCommit(false); System.out.println("Opened database successfully"); stmt = c.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM COMPANY;"); while ( rs.next() ) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); String address = rs.getString("address"); float salary = rs.getFloat("salary"); System.out.println( "الرقم التسلسلي = " + id ); System.out.println( "الاسم = " + name ); System.out.println( "العمر = " + age ); System.out.println( "العنوان = " + address ); System.out.println( "الراتب = " + salary ); System.out.println(); } rs.close(); stmt.close(); c.close(); } catch ( Exception e ) { System.err.println( e.getClass().getName()+": "+ e.getMessage() ); System.exit(0); } System.out.println("إجراء العمل تم بنجاح"); } }
عندما يتم ترميز وتنفيذ البرنامج، سيتم توليد النتائج التالية
تم فتح قاعدة البيانات بنجاح الرقم التسلسلي = 1 الاسم = بول العمر = 32 العنوان = كاليفورنيا الراتب = 20000.0 ID = 2 NAME = Allen العمر = 25 ADDRESS = Texas SALARY = 15000.0 الرقم التسلسلي = 3 الاسم = تيدي العمر = 23 العنوان = النرويج الراتب = 20000.0 الرقم التسلسلي = 4 الاسم = مارك العمر = 25 العنوان = ريتش موند الراتب = 65000.0 إجراء العمل تم بنجاح
الجدول التالي يوضح كيفية استخدام جملة UPDATE لإجراء أي تحديث، ثم استخراج وتسجيل بيانات الجدول COMPANY المعدل
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class PostgreSQLJDBC { public static void main(String args[]) { Connection c = null; Statement stmt = null; try { Class.forName("org.postgresql.Driver"); c = DriverManager .getConnection("jdbc:postgresql://localhost:5432/testdb", "manisha", "123"); c.setAutoCommit(false); System.out.println("Opened database successfully"); stmt = c.createStatement(); String sql = "UPDATE COMPANY set SALARY = 25000.00 where ID=1;"; stmt.executeUpdate(sql); c.commit(); ResultSet rs = stmt.executeQuery("SELECT * FROM COMPANY;"); while ( rs.next() ) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); String address = rs.getString("address"); float salary = rs.getFloat("salary"); System.out.println( "الرقم التسلسلي = " + id ); System.out.println( "الاسم = " + name ); System.out.println( "العمر = " + age ); System.out.println( "العنوان = " + address ); System.out.println( "الراتب = " + salary ); System.out.println(); } rs.close(); stmt.close(); c.close(); } catch ( Exception e ) { System.err.println( e.getClass().getName()+": "+ e.getMessage() ); System.exit(0); } System.out.println("إجراء العمل تم بنجاح"); } }
عندما يتم ترميز وتنفيذ البرنامج، سيتم توليد النتائج التالية
تم فتح قاعدة البيانات بنجاح ID = 2 NAME = Allen العمر = 25 ADDRESS = Texas SALARY = 15000.0 الرقم التسلسلي = 3 الاسم = تيدي العمر = 23 العنوان = النرويج الراتب = 20000.0 الرقم التسلسلي = 4 الاسم = مارك العمر = 25 العنوان = ريتش موند الراتب = 65000.0 الرقم التسلسلي = 1 الاسم = بول العمر = 32 العنوان = كاليفورنيا الراتب = 25000.0 إجراء العمل تم بنجاح
الجدول التالي يوضح كيفية استخدام جملة DELETE لإزالة أي سجل، ثم استخراج وتسجيل بيانات البقية من جدول COMPANY الخاص بنا
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class PostgreSQLJDBC6 { public static void main(String args[]) { Connection c = null; Statement stmt = null; try { Class.forName("org.postgresql.Driver"); c = DriverManager .getConnection("jdbc:postgresql://localhost:5432/testdb", "manisha", "123"); c.setAutoCommit(false); System.out.println("Opened database successfully"); stmt = c.createStatement(); String sql = "DELETE from COMPANY where ID = 2;"; stmt.executeUpdate(sql); c.commit(); ResultSet rs = stmt.executeQuery("SELECT * FROM COMPANY;"); while ( rs.next() ) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); String address = rs.getString("address"); float salary = rs.getFloat("salary"); System.out.println( "الرقم التسلسلي = " + id ); System.out.println( "الاسم = " + name ); System.out.println( "العمر = " + age ); System.out.println( "العنوان = " + address ); System.out.println( "الراتب = " + salary ); System.out.println(); } rs.close(); stmt.close(); c.close(); } catch ( Exception e ) { System.err.println( e.getClass().getName()+": "+ e.getMessage() ); System.exit(0); } System.out.println("إجراء العمل تم بنجاح"); } }
عندما يتم ترميز وتنفيذ البرنامج، سيتم توليد النتائج التالية
تم فتح قاعدة البيانات بنجاح الرقم التسلسلي = 3 الاسم = تيدي العمر = 23 العنوان = النرويج الراتب = 20000.0 الرقم التسلسلي = 4 الاسم = مارك العمر = 25 العنوان = ريتش موند الراتب = 65000.0 الرقم التسلسلي = 1 الاسم = بول العمر = 32 العنوان = كاليفورنيا الراتب = 25000.0 إجراء العمل تم بنجاح