يسمح برنامج PostgreSQL JDBC Driver (PgJDBC للاختصار) لبرامج Java بالاتصال بقاعدة بيانات PostgreSQL باستخدام كود Java القياسي المستقل لقاعدة البيانات. هو برنامج تشغيل JDBC مفتوح المصدر مكتوب بلغة Pure Java (النوع 4)، ويتصل عبر بروتوكول شبكة PostgreSQL الأصلي.
يجب أن يكون الإصدار الحالي من برنامج التشغيل متوافقًا مع PostgreSQL 8.4 والإصدارات الأحدث باستخدام الإصدار 3.0 من البروتوكول و Java 8 (JDBC 4.2) أو أعلى. ما لم تكن لديك متطلبات غير عادية (تشغيل التطبيقات القديمة أو أجهزة JVM)، فهذا هو برنامج التشغيل الذي يجب أن تستخدمه.
يتم إجراء اختبارات الانحدار PgJDBC على جميع إصدارات PostgreSQL منذ الإصدار 9.1، بما في ذلك إصدار "build PostgreSQL from git master". هناك تفرعات أخرى مشتقة من PostgreSQL ولكن لم يتم اعتمادها للعمل مع PgJDBC. إذا وجدت خطأً أو تراجعًا في الإصدارات المدعومة، فيرجى تقديم مشكلة.
ملاحظة: إصدارات PgJDBC منذ 42.8.0 غير مضمونة للعمل مع PostgreSQL الأقدم من 9.1.
لا يحتاج معظم الأشخاص إلى ترجمة PgJDBC. يمكنك تنزيل برنامج التشغيل المترجم مسبقًا (jar) من موقع PostgreSQL JDBC أو باستخدام أداة إدارة التبعية التي اخترتها:
يمكنك البحث في المستودع المركزي باستخدام GroupId وArtifactId org.postgresql:postgresql.
<!-- Add the following dependency to your pom.xml, -->
<!-- replacing LATEST with specific version as required -->
< dependency >
< groupId >org.postgresql</ groupId >
< artifactId >postgresql</ artifactId >
< version >LATEST</ version >
</ dependency >
يتم أيضًا نشر إصدارات Snapshot (الإنشاءات من الفرع master
) في OSS Sonatype Snapshot Repository، بحيث يمكنك اختبار إصدار التطوير الحالي (اختبار بعض إصلاحات الأخطاء) عن طريق تمكين المستودع واستخدام أحدث إصدار من SNAPSHOT.
تتوفر أيضًا (لقطة) RPMs ثنائية في مستودع Fedora's Copr.
لمزيد من المعلومات، يمكنك قراءة وثائق برنامج تشغيل PgJDBC أو للحصول على وثائق JDBC العامة، يرجى الرجوع إلى برامج Java™ التعليمية.
ينفذ | فصل |
---|---|
java.sql.Driver | org.postgresql.Driver |
javax.sql.DataSource | org.postgresql.ds.PGSimpleDataSource |
javax.sql.ConnectionPoolDataSource | org.postgresql.ds.PGConnectionPoolDataSource |
javax.sql.XADataSource | org.postgresql.xa.PGXADataSource |
يتعرف برنامج التشغيل على عناوين URL الخاصة بـ JDBC بالنموذج:
jdbc:postgresql:database
jdbc:postgresql:
jdbc:postgresql://host/database
jdbc:postgresql://host/
jdbc:postgresql://host:port/database
jdbc:postgresql://host:port/
jdbc:postgresql://?service=myservice
التنسيق العام لعنوان URL الخاص بـ JDBC للاتصال بخادم PostgreSQL هو كما يلي، مع كون العناصر الموجودة بين قوسين مربعين ([ ]) اختيارية:
jdbc:postgresql:[//host[:port]/][database][?property1=value1[&property2=value2]...]
أين:
localhost
.5432
. يستخدم PgJDBC java.util.logging للتسجيل. لتكوين مستويات السجل والتحكم في وجهة إخراج السجل (على سبيل المثال، ملف أو وحدة تحكم)، قم بتكوين خصائص java.util.logging وفقًا لمسجل org.postgresql. لاحظ أن مستويات السجل الأكثر تفصيلاً، " FINEST
"، قد تتضمن معلومات حساسة مثل تفاصيل الاتصال أو استعلام SQL أو معلمات الأوامر.
بالإضافة إلى معلمات الاتصال القياسية، يدعم برنامج التشغيل عددًا من الخصائص الإضافية التي يمكن استخدامها لتحديد سلوك برنامج التشغيل الإضافي الخاص بـ PostgreSQL™. يمكن تحديد هذه الخصائص إما في عنوان URL للاتصال أو في معلمة كائن خصائص إضافية إلى DriverManager.getConnection.
ملكية | يكتب | تقصير | وصف |
---|---|---|---|
مستخدم | خيط | باطل | مستخدم قاعدة البيانات الذي يتم الاتصال نيابة عنه. |
كلمة المرور | خيط | باطل | كلمة مرور مستخدم قاعدة البيانات. |
خيارات | خيط | باطل | حدد معلمة تهيئة الاتصال "الخيارات". |
خدمة | خيط | باطل | حدد اسم "الخدمة" الموضح في ملف pg_service.conf. المراجع: ملف خدمة الاتصال وملف كلمة المرور. يمكن أن يوفر ملف "الخدمة" جميع الخصائص بما في ذلك "اسم المضيف =" و"المنفذ =" و"dbname =". |
ssl | منطقية | خطأ شنيع | التحكم في استخدام SSL (القيمة الحقيقية تؤدي إلى طلب SSL) |
com.sslfactory | خيط | org.postgresql.ssl.LibPQFactory | قم بتوفير فئة SSLSocketFactory عند استخدام SSL. |
sslfactoryarg (مهجور) | خيط | باطل | تم إرسال الوسيطة إلى منشئ فئة SSLSocketFactory. |
com.sslmode | خيط | يفضل | يتحكم في تفضيلات الفتح باستخدام اتصال مشفر SSL. |
sslcert | خيط | باطل | موقع شهادة SSL الخاصة بالعميل |
com.sslkey | خيط | باطل | موقع مفتاح PKCS#8 أو PKCS#12 SSL الخاص بالعميل، بالنسبة لـ PKCS يجب أن يكون الامتداد .p12 أو .pfx ويجب أن يكون الاسم المستعار user |
com.sslrootcert | خيط | باطل | موقع الشهادة الجذرية لمصادقة الخادم. |
sslhostnameverifier | خيط | باطل | اسم الفئة (للاستخدام في Class.forName(String)) التي تنفذ javax.net.ssl.HostnameVerifier ويمكنها التحقق من اسم مضيف الخادم. |
رد اتصال sslpassword | خيط | باطل | اسم الفئة (للاستخدام في Class.forName(String)) التي تقوم بتنفيذ javax.security.auth.callback.CallbackHandler ويمكنها التعامل مع PasswordCallback لكلمة مرور SSL. |
com.sslpassword | خيط | باطل | كلمة المرور لمفتاح SSL الخاص بالعميل (يتم تجاهلها إذا تم تعيين sslpasswordcallback) |
com.sslnegotiation | خيط | postgres | يحدد ما إذا كان سيتم استخدام تفاوض ALPN ssl أم لا. اضبط على direct لاختيار ALPN. |
sendBufferSize | عدد صحيح | -1 | حجم المخزن المؤقت للكتابة بمأخذ التوصيل |
maxSendBufferSize | عدد صحيح | 65536 | الحد الأقصى لمقدار البايتات المخزنة مؤقتًا قبل إرسالها إلى الواجهة الخلفية. يستخدم pgjdbc least(maxSendBufferSize, greatest(8192, SO_SNDBUF)) لتحديد حجم المخزن المؤقت. |
getBufferSize | عدد صحيح | -1 | حجم المخزن المؤقت لقراءة المقبس |
logServerErrorDetail | منطقية | حقيقي | يسمح بتسجيل تفاصيل أخطاء الخادم (مثل عبارات وقيم SQL) وتمريرها في الاستثناءات. سيؤدي التعيين على "خطأ" إلى إخفاء هذه الأخطاء حتى لا يتم كشفها للمستخدمين أو السجلات. |
allowEncodingChanges | منطقية | خطأ شنيع | السماح بالتغييرات في Client_encoding |
logUn ClosedConnections | منطقية | خطأ شنيع | عندما يتم تجميع البيانات المهملة للاتصالات غير المغلقة بشكل صريح، قم بتسجيل تتبع المكدس من فتح الاتصال لتتبع مصدر التسرب |
binaryTransfer | منطقية | حقيقي | قم بتمكين النقل الثنائي للأنواع المدمجة المدعومة إن أمكن. يؤدي تعيين هذا إلى false إلى تعطيل أي نقل ثنائي ما لم يتم تنشيطه بشكل فردي لكل نوع باستخدام binaryTransferEnable . يعتمد ما إذا كان من الممكن استخدام النقل الثنائي على الإطلاق على البيانات المُعدة من جانب الخادم (راجع prepareThreshold ). |
BinaryTransferEnable | خيط | "" | قائمة الأنواع المفصولة بفواصل لتمكين النقل الثنائي. إما أرقام معرف الكائن أو الأسماء. |
BinaryTransferDisable | خيط | "" | قائمة أنواع مفصولة بفواصل لتعطيل النقل الثنائي. إما أرقام معرف الكائن أو الأسماء. يتجاوز القيم الموجودة في مجموعة برامج التشغيل الافتراضية والقيم المعينة باستخدام BinaryTransferEnable. |
PreparThreshold | عدد صحيح | 5 | حدد عدد عمليات تنفيذ PreparedStatement المطلوبة قبل التبديل لاستخدام البيانات المعدة من جانب الخادم. الإعداد الافتراضي هو خمسة، مما يعني البدء في استخدام البيانات المعدة من جانب الخادم عند التنفيذ الخامس لنفس كائن PreparedStatement . تعمل القيمة -1 على تنشيط البيانات المعدة من جانب الخادم وتفرض النقل الثنائي للأنواع الممكّنة (راجع binaryTransfer ). |
مستعدةStatementCacheQueries | عدد صحيح | 256 | يحدد الحد الأقصى لعدد الإدخالات في ذاكرة التخزين المؤقت لكل اتصال للبيانات المعدة. القيمة 0 تعطل ذاكرة التخزين المؤقت. |
PreparedStatementCacheSizeMiB | عدد صحيح | 5 | يحدد الحد الأقصى للحجم (بالميجابايت) لذاكرة التخزين المؤقت للبيان المعدة لكل اتصال. القيمة 0 تعطل ذاكرة التخزين المؤقت. |
defaultRowFetchSize | عدد صحيح | 0 | عدد موجب للصفوف التي يجب جلبها من قاعدة البيانات عند الحاجة إلى المزيد من الصفوف لـ ResultSet بواسطة كل تكرار جلب |
تسجيل الدخولTimeout | عدد صحيح | 0 | حدد المدة بالثواني كحد أقصى (2147484) لانتظار إنشاء اتصال بقاعدة البيانات. |
com.connectTimeout | عدد صحيح | 10 | قيمة المهلة بالثواني كحد أقصى (2147484) المستخدمة لعمليات توصيل المقبس. |
com.socketTimeout | عدد صحيح | 0 | قيمة المهلة بالثواني كحد أقصى (2147484) المستخدمة لعمليات قراءة المقبس. |
CancelSignalTimeout | عدد صحيح | 10 | المهلة المستخدمة لإرسال أمر الإلغاء. |
sslResponseTimeout | عدد صحيح | 5000 | مهلة مأخذ التوصيل بالمللي ثانية في انتظار استجابة من طلب ترقية SSL من الخادم. |
tcpKeepAlive | منطقية | خطأ شنيع | تمكين أو تعطيل استمرارية TCP. |
tcpNoDelay | منطقية | حقيقي | تمكين أو تعطيل TCP بدون تأخير. |
اسم التطبيق | خيط | برنامج تشغيل PostgreSQL JDBC | اسم التطبيق (يتطلب إصدار الخادم>= 9.0). إذا تم تعيين AcceptMinServerVersion على >= 9.0، فسيتم إرسال هذا في حزم بدء التشغيل، وإلا بعد إجراء الاتصال |
readOnly | منطقية | خطأ شنيع | يضع هذا الاتصال في وضع القراءة فقط |
readOnlyMode | خيط | عملية | يحدد السلوك عند تعيين اتصال للقراءة فقط، والقيم المحتملة: تجاهل، معاملة، دائمًا |
dableColumnSanitiser | منطقية | خطأ شنيع | تمكين التحسين الذي يؤدي إلى تعطيل أداة تنظيف اسم العمود |
يفترضMinServerVersion | خيط | باطل | افترض أن الخادم هو هذا الإصدار على الأقل |
currentSchema | خيط | باطل | حدد المخطط (أو عدة مخططات مفصولة بفواصل) ليتم تعيينه في مسار البحث |
targetServerType | خيط | أي | يحدد نوع الخادم المطلوب الاتصال به، والقيم المحتملة: أي، رئيسي، تابع (مهمل)، ثانوي، مفضلSlave (مهمل)، PreferSecondary، PreferPrimary |
hostRecheckSeconds | عدد صحيح | 10 | يحدد الفترة (الثواني) التي يتم بعدها فحص حالة المضيف مرة أخرى في حالة تغيرها |
LoadBalanceHosts | منطقية | خطأ شنيع | إذا كان المضيفون المعطلون متصلين بالترتيب المحدد. إذا تم اختيار المضيفين الممكّنين بشكل عشوائي من مجموعة المرشحين المناسبين |
com.sockFactory | خيط | باطل | حدد مصنع مأخذ لإنشاء مأخذ التوصيل |
مأخذ التوصيلFactoryArg (مهمل) | خيط | باطل | تم إرسال الوسيطة إلى مُنشئ فئة JackFactory. |
الحفظ التلقائي | خيط | أبداً | يحدد ما يجب على السائق فعله في حالة فشل الاستعلام، والقيم المحتملة: دائمًا، أبدًا، متحفظ |
CleanupSavepoints | منطقية | خطأ شنيع | في وضع الحفظ التلقائي يقوم برنامج التشغيل بتعيين نقطة حفظ لكل استعلام. من الممكن استنفاد المخازن المؤقتة المشتركة للخادم. سيؤدي ضبط هذا على "صحيح" إلى تحرير كل نقطة حفظ على حساب رحلة ذهاب وإياب إضافية. |
PreferQueryMode | خيط | ممتد | يحدد الوضع المستخدم لتنفيذ الاستعلامات إلى قاعدة البيانات، والقيم المحتملة: Extended، ExtendForPrepared، ExtendedCacheEverything، simple |
reWriteBatchedInserts | منطقية | خطأ شنيع | قم بتمكين التحسين لإعادة كتابة وطي عبارات INSERT المتوافقة المجمعة. |
escapeSyntaxCallMode | خيط | يختار | يحدد كيفية تحويل بناء جملة استدعاء الهروب JDBC إلى SQL أساسي (CALL/SELECT)، لاستدعاء الإجراءات أو الوظائف (يتطلب إصدار الخادم >= 11)، والقيم المحتملة: تحديد، callIfNoReturn، call |
maxResultBuffer | خيط | باطل | يحدد حجم المخزن المؤقت للنتيجة بالبايت، والذي لا يمكن تجاوزه أثناء قراءة مجموعة النتائج. يمكن تحديده كحجم معين (على سبيل المثال "100" أو "200M" أو "2G") أو كنسبة مئوية من الحد الأقصى لذاكرة الكومة (على سبيل المثال "10p" أو "20pct" أو "50%)" |
com.gssLib | خيط | آلي | القيم المسموح بها هي تلقائي (افتراضي، انظر أدناه)، sspi (فرض SSPI) أو gssapi (فرض GSSAPI-JSSE). |
gssResponseTimeout | عدد صحيح | 5000 | تنتهي مهلة المقبس بالمللي ثانية في انتظار الاستجابة لطلب اتصال GSS المشفر من الخادم. |
gssEncMode | خيط | يسمح | يتحكم في تفضيلات استخدام تشفير GSSAPI للاتصال، ويتم تعطيل القيم والسماح والتفضيل والطلب |
useSpnego | خيط | خطأ شنيع | استخدم SPNEGO في طلبات مصادقة SSPI |
AdaptiveFetch | منطقية | خطأ شنيع | يحدد ما إذا كان عدد الصفوف التي تم جلبها في ResultSet بواسطة كل تكرار جلب يجب أن يكون ديناميكيًا. سيتم حساب عدد الصفوف عن طريق قسمة حجم maxResultBuffer على الحد الأقصى لحجم الصف الذي تمت ملاحظته حتى الآن. يتطلب الإعلان عن maxResultBuffer وdefaultRowFetchSize للتكرار الأول. |
AdaptiveFetchMinimum | عدد صحيح | 0 | يحدد الحد الأدنى لعدد الصفوف، والتي يمكن حسابها بواسطة AdaptiveFetch. لا يمكن أن يقل عدد الصفوف المستخدمة بواسطة AdaptiveFetch عن هذه القيمة. |
AdaptiveFetchMaximum | عدد صحيح | -1 | يحدد الحد الأقصى لعدد الصفوف، والتي يمكن حسابها بواسطة AdaptiveFetch. لا يمكن أن يتجاوز عدد الصفوف المستخدمة بواسطة AdaptiveFetch هذه القيمة. يتم استخدام أي رقم سالب تم تعيينه على أنه AdaptiveFetchMaximum بواسطة AdaptiveFetch كعدد لا نهائي من الصفوف. |
localSocketAddress | خيط | باطل | اسم المضيف أو عنوان IP المعطى لتكوين الواجهة التي سيربط برنامج التشغيل جانب العميل لاتصال TCP/IP بها بشكل صريح عند الاتصال. |
quoteReturningIdentifiers | منطقية | حقيقي | بشكل افتراضي، نقوم بإرجاع المعرفات بشكل مزدوج. بعض ORM اقتبستها بالفعل. يسمح لهم Switch بإيقاف تشغيل هذا |
AuthenticationPluginClassName | خيط | باطل | اسم فئة مؤهل بالكامل للفئة التي تطبق واجهة AuthenticationPlugin. إذا كانت القيمة فارغة، فسيتم استخدام قيمة كلمة المرور في خصائص الاتصال. |
unknownLength | عدد صحيح | عدد صحيح.MAX_LENGTH | يحدد الطول المراد إرجاعه للأنواع ذات الطول غير المعروف |
نوع السلسلة | خيط | باطل | حدد النوع الذي سيتم استخدامه عند ربط معلمات PreparedStatement عبر setString() |
ChannelBinding | خيط | يفضل | يتحكم هذا الخيار في استخدام العميل لربط القناة. require يعني أن الاتصال يجب أن يستخدم ربط القناة، prefer يعني أن العميل سيختار ربط القناة إذا كان متاحًا، ويمنع disable استخدام ربط القناة. |
ملكية | يكتب | تقصير | وصف |
---|---|---|---|
pgjdbc.config.cleanup.thread.ttl | طويل | 30000 | يحتوي برنامج التشغيل على مؤشر ترابط داخلي للتنظيف يراقب وينظف الاتصالات غير المغلقة. تحدد هذه الخاصية المدة (بالملي ثانية) التي سيستمر فيها تشغيل مؤشر ترابط التنظيف إذا لم يكن هناك شيء ليتم تنظيفه. |
للحصول على معلومات حول كيفية المساهمة في المشروع، راجع إرشادات المساهمة