المعرفة المتعلقة باستعلام السبات الوقت: 2009-10-04 07:14:25 المصدر: الإنترنت المؤلف: غير معروف النقرات: 146 مرة قم أولاً بتقديم الفرق بين طريقتي get() وload():
يكمن الاختلاف بين طريقة get () وطريقة التحميل () بشكل أساسي في استخدام ذاكرة التخزين المؤقت من المستوى الثاني.
ستستخدم طريقة التحميل () ذاكرة التخزين المؤقت من المستوى الثاني، وستقوم طريقة get () بالاستعلام مباشرة عن قاعدة البيانات إذا لم يتم العثور عليها في ذاكرة التخزين المؤقت للمستوى الأول، ولن تبحث في ذاكرة التخزين المؤقت للمستوى الثاني.
get(): إذا قمت أولاً بتقديم الفرق بين أساليب get() وload() في قاعدة البيانات:
يكمن الاختلاف بين طريقة get () وطريقة التحميل () بشكل أساسي في استخدام ذاكرة التخزين المؤقت من المستوى الثاني.
ستستخدم طريقة التحميل () ذاكرة التخزين المؤقت من المستوى الثاني، وستقوم طريقة get () بالاستعلام مباشرة عن قاعدة البيانات إذا لم يتم العثور عليها في ذاكرة التخزين المؤقت للمستوى الأول، ولن تبحث في ذاكرة التخزين المؤقت للمستوى الثاني.
get (): إذا لم يكن هناك سجل في قاعدة البيانات، فسوف يُرجع قيمة فارغة، وسيقوم get () بإرجاع البيانات على أي حال.
Load(): إذا لم يكن هناك سجل في قاعدة البيانات، فسيتم طرح استثناء إذا كانت هناك بيانات، فسيتم إرجاع كائن الوكيل.
الفرق بين طريقتي القائمة والتكرار (): (N+1؟)
عند تنفيذ طريقة list()، فإنها تقوم مباشرة بتشغيل عبارات الاستعلام المطلوبة لنتائج الاستعلام.
تقوم طريقة التكرار () أولاً بتنفيذ الاستعلام للحصول على معرف الكائن، ثم تحصل على الكائن المطلوب الاستعلام عنه بناءً على كل قيمة معرف.
لذلك: بالنسبة للاستعلامات التي تستخدم طريقة list()، عادةً ما يتم تنفيذ عبارة SQL واحدة فقط، بينما بالنسبة للاستعلامات التي تستخدم طريقة iterator()، قد يلزم تنفيذ عبارات N+1 SQL (N هو عدد السجلات في مجموعة النتائج ).
تتم معالجة مجموعات النتائج بشكل مختلف:
ستقوم طريقة list() بتنشيط جميع كائنات مجموعة النتائج مرة واحدة، وستقوم بتهيئة جميع كائنات مجموعة النتائج بناءً على نتائج الاستعلام. إذا كانت مجموعة النتائج كبيرة جدًا، فسوف تشغل مساحة كبيرة من الذاكرة وقد تتسبب في تجاوز سعة الذاكرة.
لا تقوم طريقة التكرار () بتهيئة جميع الكائنات مرة واحدة أثناء التنفيذ، ولكنها تقوم بتهيئة الكائنات بناءً على الوصول إلى مجموعة النتائج. يمكنك التحكم في عدد الكائنات الموجودة في ذاكرة التخزين المؤقت أثناء الوصول مرة واحدة لتجنب استهلاك الكثير من ذاكرة التخزين المؤقت والتسبب في تجاوز سعة الذاكرة.
HQL: HQL هي لغة استعلام موجهة للكائنات. كائنات تشغيل HQL هي الفئات والمثيلات والسمات وما إلى ذلك.
SQL: كائنات تشغيل SQL هي كائنات بيانات مثل جداول البيانات والأعمدة.
Hql هي لغة استعلام كائنية التوجه بالكامل، لذا يمكنها دعم ميزات مثل الميراث والعناصر المتعددة.
يعتمد استعلام HQL على فئة الاستعلام، ويتوافق كل مثيل استعلام مع كائن استعلام.
وظيفة تعيين المعلمات، واجهة الاستعلام هي واجهة استعلام HQL الحقيقية.
// أنشئ كائن استعلام
استعلام الاستعلام = session.createQuery ("من العميل كـ c حيث c.name=:customerName وc.age=:customerAge");
// معلمات الربط الديناميكية
query.setString("customerName"،"توم")؛
query.setInteger("customerAge",21);
// تنفيذ عبارة الاستعلام وإرجاع النتائج
نتيجة القائمة = query.list();
خطوات الاستعلام HQL:
1: احصل على كائن جلسة السبات.
2: كتابة بيانات HQL.
3: استخدم عبارة HQL كمعلمة لاستدعاء طريقة createQuery الخاصة بالجلسة لإنشاء كائن استعلام.
4: إذا كانت عبارة HQL تحتوي على معلمات، فاستدعاء طريقة الاستعلام setXXX () لتعيين قيم للمعلمات.
5: استدعاء القائمة والأساليب الأخرى لكائن الاستعلام لاجتياز نتائج الاستعلام.
يحتوي الاستعلام أيضًا على طريقتين:
setFirstResult(int firstResult): قم بتعيين السجل الذي تبدأ منه مجموعة النتائج التي تم إرجاعها.
setMaxResults(int maxResults): قم بتعيين عدد النتائج التي يتم إرجاعها بواسطة هذا الاستعلام.
حذف الكيان وتحديثه.
استعلام الإسقاط: الاستعلام فقط عن جزء من السمة.
الاستعلام عن سمة يرجع سلسلة
يؤدي الاستعلام عن حقلين إلى إرجاع مصفوفة
استعلام تم إنشاؤه ديناميكيًا: يُستخدم بشكل أساسي لعشرات استعلامات الجدول؛
لإنشاء كائن جديد، أضف مُنشئًا؛
عند إنشاء كائن جديد، قم بإضافة اسم الحزمة
لا تستخدم العد (*)، استخدم العد (كائن ثابت)
التجميع والفرز:
يمكن ترتيب الترتيب حسب الجملة باستخدام الكلمات الرئيسية تصاعديًا أو تنازليًا
على سبيل المثال: نموذج المستخدم u Order by u.name asc,u.age desc;
التجميع حسب الجملة والاستعلام الإحصائي:
على سبيل المثال: String hql = "select count(u),u.age من مجموعة User u بواسطة u.age الذي يحتوي على count(u)>10";
قائمة القائمة = session.createQuery(hql).list();
يمكن استخدام وظائف تجميع SQL القياسية في عبارات HQL، مثل: count()، sum()، max()، min()، age()، إلخ.
استعلام الاتصال:
الانضمام الداخلي: الانضمام الداخلي
الصلة الخارجية اليسرى: الصلة الخارجية اليسرى
الصلة الخارجية اليمنى: الصلة الخارجية اليمنى
الانضمام الكامل: الانضمام الكامل (غير شائع الاستخدام)
صلة خارجية عاجلة: جلب الصلة الخارجية اليسرى، وصلة يسرى
الجلب: يستخدم للحصول على بيانات الاتصال في وقت واحد، وخاصة بيانات المجموعة. تقليل عدد التفاعلات مع قاعدة البيانات.
الصلة المتروكة: استخدم صلة خارجية لإجراء صلة خارجية وسيتم عرض جميع السجلات في الجدول الأيسر ومعلومات السجل المقابلة لفئة الطلب.
الانضمام للخارج: على عكس الانضمام للخارج، تقوم الصلة للخارج بإرجاع جميع السجلات الموجودة في الجدول الأيمن لـ HQL ومعلومات سجل كائن العميل المقابلة.
أربع طرق للحصول على بيانات المجموعة:
1:Hibernate.initialize(user.getOrder());
2:user.getOrder().size();
3: اتصال عاجل يسارًا ويمينًا
4: مرشحات متقدمة
استعلامات المعايير: استخدم الكائنات لإجراء استعلامات الكائنات.
الواجهات الرئيسية هي: فئات المعايير والمعيار والتعبير r والقيود. القدرة على دعم الإنشاء الديناميكي لعبارات SQL في وقت التشغيل.
خطوات الاستعلام الشرطي:
1: قم بإنشاء كائن معايير من خلال طريقة CreateCriteria() الخاصة بالرؤية
2: قم بتعيين كائن الاستعلام، يشير الاسم إلى سمة الكائن
3: إضافة شروط الاستعلام إلى كائن المعايير
4: تنفيذ استعلام list() لإرجاع النتائج.
يتم إكمال الاستعلام الشرطي من خلال ثلاث فئات:
المعايير: تمثل استعلامًا.
المعيار: يمثل شرط الاستعلام.
القيود: فئة الأداة لإنشاء شروط الاستعلام.
هذه المقالة مأخوذة من مدونة CSDN، يرجى الإشارة إلى المصدر عند إعادة الطباعة: http://blog.csdn.net/jzaccp_xiaoxiong/archive/2009/12/31/5111135.aspx .