6

से आशावादी और निराशावादी लॉकिंग को कैसे कोड करें मुझे पता है कि आशावादी और निराशावादी लॉकिंग क्या है, लेकिन जब आप जावा कोड लिखते हैं तो आप इसे कैसे करते हैं? मान लीजिए कि मैं जावा के साथ ओरेकल का उपयोग कर रहा हूं, क्या मेरे पास जेडीबीसी में कोई तरीका है जो मुझे ऐसा करने में मदद करेगा? मैं इस बात को कैसे कॉन्फ़िगर करूं? किसी भी पॉइंटर्स की सराहना की जाएगी।जावा कोड

+0

जावा लॉकिंग और जेडीबीसी आप जिस तरह से खोज रहे हैं उससे संबंधित नहीं हैं। आप जिस समस्या को हल करने की कोशिश कर रहे हैं वह क्या है? जावा ताले फिर से प्रवेश करने वाले ताले होते हैं जिन्हें 'सिंक्रनाइज़' कुंजी शब्द का उपयोग करके प्राप्त किया जा सकता है। तो, आप वास्तव में क्या देख रहे हैं? – Pavan

+0

मैं डेटाबेस लॉकिंग की तलाश में हूं – user2434

उत्तर

3

मान लीजिए कि मैं जावा के साथ ओरेकल का उपयोग कर रहा हूं, क्या मेरे पास जेडीबीसी में कोई तरीका है जो मुझे ऐसा करने में मदद करेगा?

This Oracle paper आपको यह कैसे करना है इस पर कुछ सुझाव प्रदान करना चाहिए।

कोई विशिष्ट जेडीबीसी विधियां नहीं हैं। इसके बजाय, आप अपने एसक्यूएल प्रश्न/अपडेट और जहां आप लेनदेन की सीमाएं डालते हैं, वैसे ही आशावादी लॉकिंग प्राप्त करते हैं।

11

आप इस तरीके से अपने डीबी तालिका में आशावादी ताले लागू कर सकते हैं (यह कैसे आशावादी ताला हाइबरनेट में किया जाता है):

  1. अपनी तालिका में पूर्णांक "संस्करण" कॉलम जोड़ें।
  2. इसी पंक्ति के प्रत्येक अद्यतन के साथ इस कॉलम के मान को बढ़ाएं।
  3. लॉक प्राप्त करने के लिए, बस पंक्ति के "संस्करण" मान को पढ़ें।
  4. आपके अपडेट स्टेटमेंट के खंड में "संस्करण = प्राप्त_वर्जन" स्थिति जोड़ें। अद्यतन के बाद प्रभावित पंक्तियों की संख्या सत्यापित करें। यदि कोई पंक्ति प्रभावित नहीं हुई - किसी ने आपकी प्रविष्टि को पहले से ही संशोधित कर दिया है।

आपका अद्यतन की तरह

UPDATE mytable SET name = 'Andy', version = 3 WHERE id = 1 and version = 2 

बेशक दिखना चाहिए, इस तंत्र तभी काम करता है सभी दलों इसे का पालन, डीबीएमएस के द्वारा उपलब्ध कराया ताले है कि कोई विशेष हैंडलिंग की आवश्यकता के विपरीत।

उम्मीद है कि इससे मदद मिलती है।