Postgres جولانج

Postgres Jwlanj



غالبًا ما يشار إليها باسم Golang ، Go هي لغة برمجة مفتوحة المصدر ومجمعة ومكتوبة بشكل ثابت تم إنشاؤها بواسطة Google. تم تصميمه ليكون سهل الفهم وسريع وواضح وعالي الأداء.

PostgreSQL ، غالبًا ما يشار إليها ببساطة باسم Postgres ، هي نظام قاعدة بيانات ارتباطية قوي ومفتوح المصدر. مع أكثر من 30 عامًا من التطوير النشط ، اكتسبت سمعة قوية بسبب متانتها وميزاتها المتقدمة والامتثال الكبير للمعايير.

إنه مصمم للتعامل مع أعباء العمل المكثفة ، من الأجهزة الفردية إلى مستودعات البيانات أو خدمات الويب مع العديد من المستخدمين المتزامنين. يوفر تكامل المعاملات وقوة تحملها ويدعم مختلف أنواع البيانات المتقدمة ولغة معالجة البيانات القوية والمرنة.







يعلمنا هذا البرنامج التعليمي كيفية تكوين خادم PostgreSQL وتوصيله بتطبيق Go.



متطلبات:

لغة البرمجة Go - يضمن تثبيت برنامج التحويل البرمجي Go على جهازك.



قاعدة بيانات PostgreSQL - تحتاج أيضًا إلى تثبيت PostgreSQL. يمكنك تثبيته مباشرة على جهازك أو استخدام حاوية Docker لإعداد أكثر وضوحًا.





ادوات التطوير - بيئة تطوير متكاملة (IDE) تدعم Go مثل Visual Studio Code و GoLand وما إلى ذلك.

المعرفة الأساسية لـ SQL و Go - للتفاعل مع قاعدة بيانات PostgreSQL ، يجب أن تفهم SQL والاستعلامات المختلفة التي تحتاج إلى تنفيذها. تحتاج أيضًا إلى فهم أساسي للغة Go.



مع تلبية المتطلبات المحددة ، يمكننا المتابعة إلى الخطوات التالية.

إعداد مشروع

دعونا نبدأ بإعداد هيكل دليل المشروع الخاص بنا. قم بإنشاء الدليل الرئيسي حيث تريد تخزين رمز مصدر المشروع.

$ مكدير golang_postgres

انتقل إلى الدليل وقم بتهيئة وحدة Go جديدة.

$ قرص مضغوط golang_postgres && go mod init main

قم بتثبيت برامج التشغيل المطلوبة

من أجل التفاعل مع قاعدة بيانات PostgreSQL ، نحتاج إلى برنامج تشغيل PostgreSQL للغة برمجة Go.

في هذا البرنامج التعليمي ، نستخدم برنامج التشغيل pq الذي يوفر مجموعة واسعة من الميزات للعمل مع قاعدة بيانات PostgreSQL.

يمكنك تثبيته عن طريق تشغيل الأمر التالي:

اذهب واحصل على github.com / ليب / ص

أنشئ قاعدة بيانات

الخطوة التالية هي إنشاء قاعدة بيانات PostgreSQL جديدة. مرة أخرى ، يمكننا القيام بذلك في صدفة PostgreSQL.

$ بسكل -في postgres

يطالبك هذا الأمر بكلمة مرور postgres. بمجرد تسجيل الدخول ، قم بتشغيل الأمر 'إنشاء قاعدة بيانات' لتهيئة قاعدة بيانات جديدة:

postgres = # إنشاء قاعدة بيانات golang ؛
إنشاء قاعدة بيانات

يقوم الأمر المحدد بإنشاء قاعدة بيانات جديدة تسمى 'golang'. لا تتردد في استبدال اسم قاعدة البيانات بالاسم الذي تريده.

يمكنك بعد ذلك التحقق من إنشاء قاعدة البيانات بنجاح من خلال الاتصال بها.

postgres = # \ c golang ؛
أنت الآن متصل بقاعدة البيانات 'golang' كمستخدم 'postgres'.

بعد ذلك ، قم بإعداد الجدول حيث ترغب في تخزين البيانات. نقوم بإنشاء جدول بسيط لهذا البرنامج التعليمي يخزن معلومات الجلسة.

إنشاء جدول db_clients (
معرف المفتاح الأساسي التسلسلي ،
اسم VARCHAR (100) NOT NULL ،
session_time TIMESTAMP ليست فارغة ،
number_of_queries INT افتراضي 0 ،
active_state الخطأ الافتراضي للبوليان
) ؛

يجب أن ينشئ الاستعلام المحدد جدولًا جديدًا يسمى 'db_clients' يخزن معلومات حول العملاء الذين تم تسجيل دخولهم إلى خادم قاعدة بيانات معين.

قم بتوصيل تطبيق Go بـ PostgreSQL

بمجرد إعداد قاعدة البيانات وجدول قاعدة البيانات ، يمكننا المتابعة ومعرفة كيفية توصيل تطبيق Go بخادم PostgreSQL.

ابدأ بإنشاء ملف 'main.go' في جذر مشروعك:

$ يلمس main.go

بعد ذلك ، قم بتحرير الملف باستخدام محرر النصوص الذي تختاره:

$ لأن main.go

في ملف 'main.go' ، أضف شفرة المصدر كما هو موضح في ما يلي:

الحزمة الرئيسية

يستورد (
'قاعدة بيانات / SQL'
'FMT'
'سجل'

_ 'github.com/lib/pq'
)

func الرئيسي ( ) {
كونستر: = 'postgres: // postgres: password @ localhost / golang؟ sslmode = تعطيل'
db ، يخطئ: = sql.Open ( 'postgres' كونستر )
لو يخطئ ! = لا شيء {
سجل. مميت ( يخطئ )
}

لو يخطئ = ديسيبل بينغ ( ) ؛ يخطئ ! = لا شيء {
سجل. مميت ( يخطئ )
}

fmt.Println ( 'متصل بقاعدة البيانات' )
}

في الكود السابق ، نبدأ باستيراد الوحدات المطلوبة. ثم نحدد الوظيفة الرئيسية. أخيرًا ، في الوظيفة الرئيسية ، نحدد سلسلة الاتصال التي تسمح لنا بتحديد المضيف الهدف ومستخدم قاعدة البيانات وكلمة مرور قاعدة البيانات وقاعدة البيانات الهدف الفعلية.

تدعم الوحدة المعلمات التالية في سلسلة الاتصال:

  • dbname - اسم قاعدة البيانات المراد الاتصال بها.
  • المستخدم - المستخدم لتسجيل الدخول باسم.
  • كلمة المرور - كلمة مرور المستخدم.
  • المضيف - المضيف المطلوب الاتصال به. القيم التي تبدأ بـ “/” هي لمقابس مجال Unix (الافتراضي هو localhost).
  • المنفذ - المنفذ المراد الارتباط به (الافتراضي هو 5432).
  • sslmode - ما إذا كنت تريد استخدام SSL أم لا (مطلوب الإعداد الافتراضي ؛ هذا ليس الإعداد الافتراضي لـ libpq).
  • Fallback_application_name - اسم application_name للرجوع إليه إذا لم يتم توفيره.
  • connect_timeout - الحد الأقصى لانتظار الاتصال في ثوانٍ. صفر أو غير محدد يعني الانتظار إلى أجل غير مسمى.
  • sslcert - موقع ملف الشهادة. يجب أن يحتوي الملف على البيانات المشفرة PEM.
  • sslkey - موقع ملف المفتاح. يجب أن يحتوي الملف على البيانات المشفرة PEM.
  • sslrootcert - موقع ملف الشهادة الجذر. يجب أن يحتوي الملف على البيانات المشفرة PEM.

يمكنك تكوين خصائص الاتصال الهدف الخاص بك حسب الضرورة. لتكوين SSL ومعلمات SSLMode المقبولة ، تحقق من البرنامج التعليمي الخاص بنا على https://linuxhint.com/postgres-sslmode .

بمجرد رضاك ​​عن خصائص الاتصال ، يمكنك تشغيل الكود السابق لاختبار ما إذا كان الاتصال قد تم إنشاؤه أم لا.

اذهب تشغيل

عند الاتصال ، يجب أن تحصل على الإخراج التالي:

متصل بقاعدة البيانات

PostgreSQL أدخل البيانات في الجدول

الخطوة التالية هي إدخال البيانات النموذجية في الجدول الذي أنشأناه سابقًا. يمكننا القيام بذلك عن طريق تحديد استعلامات الإدراج كسلسلة حرفية ثم استخدام الدالة db.Exec () لتشغيل الاستعلام الهدف.

رمز على النحو التالي:

-
insertStatement: = `` INSERT INTO db_clients (الاسم ، وقت الجلسة ، عدد الاستعلامات ، الحالة النشطة)
قيم
('psql' ، '2023-05-26 10:15:00' ، 10 ، صحيح) ،
('datagrip'، '2023-05-26 09:30:00'، 5، true) ،
('dbeaver'، '2023-05-26 11:00:00'، 20، true) ،
('طاولة العمل' ، '2023-05-26 14:45:00' ، 15 ، خطأ) ،
('remote'، '2023-05-26 13:20:00'، 8، true) ؛ ``

_ ، يخطئ = db.Exec (insertStatement)
إذا أخطأت! = لا شيء {
سجل. فادح (يخطئ)
}

إذا قمت بتشغيل التعليمات البرمجية السابقة ، فيجب إدراج السجلات المحددة في الجدول الهدف.

بيانات استعلام PostgreSQL

للاستعلام عن الصفوف من الجدول ، يمكننا تحديد جملة select كسلسلة واستخدام db.Query () لتشغيلها. يمكننا تكرار صفوف الجدول باستخدام وظيفة Next () وطباعتها كما هو موضح في ما يلي:

الصفوف ، يخطئ: = db.Query ( 'حدد * من db_clients' )
لو يخطئ ! = لا شيء {
سجل. مميت ( يخطئ )
}
الصفوف المؤجلة ( )

ل الصفوف ( ) {
كان بطاقة تعريف int
سلسلة اسم فار
var sessionTime time.Time
var numberOfQueries int
var activeState منطقي

يخطئ: = rows.Scan ( & بطاقة تعريف و & اسم، & وقت الجلسة ، & numberOfQueries ، & حالة نشطة )
لو يخطئ ! = لا شيء {
سجل. مميت ( يخطئ )
}

fmt.Printf ( 'المعرف:٪ d ، الاسم:٪ s ، وقت الجلسة:٪ s ، عدد الاستعلامات:٪ d ، الحالة النشطة:٪ t ' و بطاقة تعريف الاسم sessionTime numberOfQueries activeState )
}

لو يخطئ = صفوف ( ) ؛ يخطئ ! = لا شيء {
سجل. مميت ( يخطئ )
}

بمجرد تشغيل الكود السابق ، يجب أن يطبع جميع الصفوف من جدول db_clients كما هو موضح في المثال التالي الناتج:

ها أنت ذا!

خاتمة

اكتشفنا كيف يمكننا استخدام حزمة pq للاتصال والاستعلام عن قاعدة بيانات PostgreSQL باستخدام Golang.