التي بيرل واجهة قاعدة البيانات التي يجب استخدامها ؟

StackOverflow https://stackoverflow.com/questions/42778

  •  09-06-2019
  •  | 
  •  

سؤال

هو CPAN DBI أفضل واجهة قاعدة البيانات لاستخدامها في بيرل العامة قاعدة بيانات الاستخدام ؟ هناك بعض أفضل الخيارات ؟

هل كانت مفيدة؟

المحلول

إذا كنت تبحث فقط على مستوى منخفض الوصول إلى قاعدة البيانات—يمكنك تغذية أي سلسلة SQL (اختياريا مع أصحاب المكان وربط القيم) وأنه يعمل الاستعلام الخاص بك ويعطيك مرة—ثم نعم ، DBI هو أفضل رهان ، إلى حد بعيد.

إذا كنت ترغب في مستوى أعلى واجهة (أي واحد التي تتطلب قليلا أو لا استخدام SQL الخام في التعليمات البرمجية الخاصة بك) ثم هناك العديد من ORMs (كائن علائقي المخططون) المتاحة بيرل.تحقق من ORM الصفحة في بيرل مؤسسة بيرل 5 ويكي لمزيد من المعلومات و الروابط.(إذا كنت تريد مساعدة في اختيار من بينها أو لديك أسئلة محددة يمكنك تضييق نطاق التركيز من هذا السؤال أو ربما بعد آخر.)

نصائح أخرى

DBI هو "مستوى منخفض" واجهة بين Perl و DBMS.انها الى حد كبير الخيار الواقعي الوحيد للقيام بذلك.مقارنة JDBC في جاوة.هل سيكون ضربا من الجنون (أو محددة جدا في حالة استخدام) لاختيار أي شيء آخر من DBI لك انخفاض مستوى التفاعل بين Perl و قاعدة البيانات.

على رأس DBI, هناك العديد من كائن/العلائقية المخططون التي تجعل العمل مع قاعدة البيانات أسهل بكثير وأكثر نظافة.

بعض مشتركة/أكثر شعبية منها هي

إذا اخترت استخدام عادي DBI من أجل المهمة التي لا تحتاج إلى ORM أنا بقوة أقترح عليك أن نلقي نظرة على DBIx::بسيطة.

انها ليست بديلا ، ولكن مصممة بشكل جيد جدا API على رأس DBI الذي يجعل الأشياء البسيطة البسيطة والمعقدة الأمور الممكنة دون فقدان أي من flexibilty من DBI.

هل وجدت من أي وقت مضى كان لديك للبحث على ما يبدو أشياء بسيطة في DBI الوثائق ، مثل الحصول على نتائج الاستعلام كما arrayref (الصفوف) من التجزئة (الأعمدة و قيمها)?مع DBIx::Simple هذا هو بسيط:

# DBI
my $rows = $dbh->selectall_arrayref($sql, { Slice => {} });
                 # tell it we want "hashes" (yuck!) ^^^^

# DBIx::Simple
my $rows = $db->query($sql)->hashes; # does the same as the above code underneath!

نلقي نظرة على أمثلة لمزيد من.كما التكامل مع SQL::مجردة ، يجعل استعلامات بسيطة نسيم.هو استخدامه في كل من قانون بلدي حيث كنت قد استخدمت DBI من قبل ، أنا لا ننظر الى الوراء.

تجدر الإشارة إلى أن الغالبية العظمى من "أعلى مستوى" واجهات (مثل SQL::الملخص) و (DBIx::بسيطة) استخدام DBI نفسها عندما في الواقع أداء الاستعلامات.DBI هو الى حد كبير مستوى مقبولا طريقة اتصال قاعدة البيانات في بيرل.

إذا كنت ترغب في العمل مع الكائنات (مع التأمل!), نلقي نظرة على طفولي::ORM التي تنفذ ORM على أساس موس.هو أيضا جدا SQL مثل بناء الجملة لذلك يناسب بلدي RDBMS القائم على الدماغ على نحو أفضل قليلا من بعض من غيرها من ORM الأطر.

إلقاء نظرة على الطبقة::DBI وكذلك.

في رأيي ، DBI هو خيار جيد حقا.لقد استعملت DBD::mysql بنشاط و وجدنا أنه يكون حل جيد حقا.

نحن نستخدم DBI وحدة في جميع مشاريعنا أيضا.مرات عديدة ونحن بناء مخصصة الحزمة على أعلى من ذلك لتطبيق معين ولكن تحت هذا هو جوهر DBI وحدة.و في كثير من الأحيان انها مجرد أسهل لاستخدام DBI وحدة المهام مباشرة.

DBI كبيرة ، ولكن نوعية DBD وحدات يمكن أن تختلف.كنت للعض من قبل 'ميزة' في واحدة من الإصدارات من DBD:pg.فإنه يحب لتحميل بيانات كاملة من النتائج الخاصة بك في الذاكرة بدلا من interate أكثر من ذلك مع المؤشرات.

حسب المعتاد - التحذير programmor.

DBI الصخور!ولكن مناسبة تماما ميزاتها ORM سريعة الذهاب DBIx::الفئة في كل وقت.

في الأساس يجب أن تستخدم فقط باستخدام DBI أولا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top