हाइबरनेट एक ओआरएम है, जिसका अर्थ है (इसके सबसे बुनियादी स्तर पर) यह एक डेटाबेस टेबल में वास्तविक पंक्तियों के लिए जावा ऑब्जेक्ट्स के उदाहरणों को मैप करता है। आमतौर पर, पूजो को हाइबरनेट के माध्यम से पुनः प्राप्त करने के लिए: डेटाबेस में इन पूजो के लिए कोई भी हेरफेर और संशोधन दिखाई देगा। हाइबरनेट एक उपयुक्त समय पर संबंधित SQL उत्पन्न और निष्पादित करेगा।
Mybatis (अपने सबसे बुनियादी स्तर पर) बस एक साथ piecing और SQL को निष्पादित करने के लिए एक उपकरण है जो xml फ़ाइलों में संग्रहीत है। यह डेटाबेस तालिका में पंक्तियों के लिए जावा ऑब्जेक्ट के उदाहरणों को मैप नहीं करता है, बल्कि यह एसक्यूएल स्टेटमेंट के लिए जावा विधियों को मैप करता है, और इसलिए यह ओआरएम नहीं है। यह पूजो की वापसी भी कर सकता है, लेकिन वे किसी भी तरह के हठ के संदर्भ में नहीं बंधे हैं।
दोनों उपकरण ऊपर वर्णित से बहुत अधिक करते हैं, लेकिन एक ओआरएम है और एक नहीं है।
यह मानने के लिए कि आपको कौन सा उपयोग करना है, यह मानने के लिए मापदंड, आपके द्वारा काम किए जाने वाले डेटाबेस मॉडल पर गंभीर रूप से निर्भर करता है।
उदाहरण के लिए, कुछ बीमा मॉडल का प्रतिनिधित्व करने वाले एक बड़े विशाल स्कीमा की कल्पना करें। डेवलपर्स को डेटा पुनर्प्राप्त करने की आवश्यकता होती है, और उस डेटा के साथ एक तरह से बातचीत करते हैं जो हाथ में व्यवसाय को पूरा करता है।
डेवलपर का काम चल रहा है, और उम्मीद नहीं की जा सकती कि अपेक्षित व्यावसायिक ज्ञान को सभी
वर्ग को हाथ से लिखने के लिए (जिसमें मायबेटिस की आवश्यकता होगी)। हाइबरनेट उस तरह एक परिदृश्य के अनुरूप होगा।
व्यावसायिक विश्लेषक डेटामॉडल, संस्थाओं, रिश्तों और अंतःक्रियाओं को परिभाषित करते हैं, जैसा कि उनकी विशेषज्ञता है। जावा डेवलपर फिर हाइबरनेट का उपयोग "मॉडल को चलने" के लिए करते हैं। व्यवसाय के विकासकर्ता बहुत जटिल स्कीमा पर चलने के लिए जटिल त्रुटि प्रवण एसक्यूएल लिखने की आवश्यकता के बिना बहुत जल्दी उत्पादक बन सकते हैं।
मेरे विस्तार में, हाइबरनेट और मायबैटिस दोनों का उपयोग एक ही परियोजना पर नियमित रूप से किया जाता है।
जहां हाइबरनेट का इस्तेमाल किया जा रहा है
- सामान्य CRUD कार्यक्षमता
- 'चलना' 'डोमेन ऑब्जेक्ट' संबंधपरक मॉडल
- सत्र प्रबंधन
और जहां Mybatis के लिए इस्तेमाल किया जा रहा है
- तदर्थ प्रश्न
- संग्रहीत प्रक्रियाओं को बंद करें (और उनके साथ बातचीत करें)
- बहुत विशिष्ट या जटिल प्रश्नों का समर्थन करें
- जटिल खोज प्रश्नों का समर्थन करें, जहाँ खोज मापदंड गतिशील है, और परिणामों के पृष्ठन