هل هناك أي مكتبات Java تعمل على التحقق من صحة بناء جملة SQL؟[مغلق]

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

  •  02-07-2019
  •  | 
  •  

سؤال

لست متأكدًا مما إذا كان هذا موجودًا أم لا، لذلك فكرت في الاستفادة من حكمة الآخرين.

كنت أتساءل عما إذا كانت هناك أي مكتبات Java يمكن استخدامها للتحقق من صحة بناء جملة استعلام SQL.أعلم أن هناك العديد من الانحرافات عن مواصفات SQL الشائعة، لذلك من المحتمل أن تعمل فقط ضد شيء مثل SQL:2006، ولكن هذا سيكون كافيًا بالتأكيد.

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

شكرًا!

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

المحلول

لا أعتقد أن هناك مثل هذه المكتبات.يحتوي بناء جملة SQL على عدد كبير جدًا من المشتقات.

يتمثل الحل المحتمل في استخدام أجزاء من نظام Java DBMS خالص مفتوح المصدر مثل سمولسكل.في هذا المشروع يمكنك إنشاء مثيل لـ SQLParser.يمكن إزالة المراجع المطلوبة للاتصال بسهولة بالغة.

نصائح أخرى

ربما يمكنك استخدام Antlr، فهو يحتوي على عدد من قواعد SQL و أ مكتبة جافا, بالإضافة إلى المكونات الإضافية لمختلف بيئة Java IDE.

أو كما ينصح، استخدم المحلل اللغوي لأدوات SQL المساعدة مفتوحة المصدر مثل عميل SQL SquirreL.

محلل SQL العام يقدر على التحقق من بناء جملة SQL دون اتصال.قواعد البيانات المدعومة:أوراكل، DB2، MySQL، SQL Server، Teradata وPostgreSQL.

يحاول محلل JSQL.

بالإضافة إلى التحقق من الصحة، يمكنك الحصول على تمثيل ذي معنى للاستعلام.
وهذا يسمح لك، على سبيل المثال، بقبول أوامر "معينة" فقط؛يتلَاعب ب
الاستعلام، "تجميله"، وما إلى ذلك.

قد تتمكن من استخراج كود التحليل من HSQL, وهو جافا ومفتوح المصدر.

أباتشي ديربي هي قاعدة بيانات SQL مفتوحة المصدر يتم تنفيذها بالكامل في Java ومتوفرة ضمن ترخيص أباتشي، الإصدار 2.0.كانت تعرف سابقا باسم آي بي إم كلاودسكيب.

يمكنك محاولة إعادة استخدام رمز التحليل الخاص به من org.apache.derby.impl.sql.

مع جوك لن ترتكب أي خطأ في SQL.سوف يعتني مترجم Java بذلك.

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