2009-02-25 3 views
6

जावा के साथ अपाचे डर्बी का उपयोग करना (जे 2 एमई, लेकिन मुझे नहीं लगता कि इससे कोई फर्क पड़ता है) क्या यह जांचने का कोई तरीका है कि डेटाबेस पहले से मौजूद है या कोई टेबल है?अपाचे डर्बी - डाटाबेस पहले से ही बनाया गया है?

+0

यह भी देखें http://stackoverflow.com/questions/584497/apache-derby-check-database-already-created – Raedwald

उत्तर

10

माईएसक्यूएल के विपरीत, मेरे पास कुछ काम को छोड़कर, मैं किसी के बारे में नहीं जानता, जहां हमारे पास EXFST की सुविधा है।

आप क्या करते हैं, डेटाबेस से कनेक्ट करने का प्रयास करें, अगर इसकी संभावना नहीं हो सकती है। और एक सफल कनेक्शन के बाद, आप यह जानने के लिए कि तालिका मौजूद है या नहीं, एक सरल चयन कर सकते हैं, जैसे TABLE_NAME से SELECT count (*)। आप अपवाद के आधार पर होंगे। सूर्य से आधिकारिक उदाहरण में भी, मैंने इसी तरह के काम को देखा है।

ओरेकल में हमारे पास डेटाबेस ऑब्जेक्ट्स के बारे में जानने के लिए शब्दकोश टेबल हैं। मुझे संदेह है कि अगर हमारे पास डर्बी में ऐसा कुछ है।

[संपादित]

ठीक है, मैंने पाया एक तरह से जानना चाहते हैं कि तालिका मौजूद नहीं है। कोशिश करें, सिस्टम से tablename चुनें। डेटाबेस की जांच करने के लिए, तालिका के अस्तित्व की जांच करने के लिए आपको उपरोक्त समझाया जा सकता है।

8

Adeel, आप भी Connection.getMetaData का प्रयोग कर एक DatabaseMetaData वस्तु लौटने के लिए सकता है, तो getTables उपयोग करते हैं, एक बार आप निश्चित रूप से डेटाबेस के लिए कनेक्शन है। इसका किसी भी डेटाबेस के लिए जेडीबीसी ड्राइवर के नमक के लायक काम करने का लाभ है।

यह जांचने के लिए कि डेटाबेस मौजूद है या नहीं, यदि आप एम्बेडेड तरीके से डर्बी का उपयोग कर रहे हैं, या सर्वर एक ही मशीन पर है, तो आप जांच सकते हैं कि डेटाबेस के लिए फ़ोल्डर मौजूद है या नहीं। यद्यपि थोड़ा सा है। मैं एडिएल सुझाव देता हूं और अपवाद को पकड़ने की कोशिश करता हूं, अगर यह वहां नहीं है।

2

मैं डेटाबेस मेटाडेटा ऑब्जेक्ट प्राप्त करने का सुझाव दूंगा, फिर GetTables (शून्य, शून्य, शून्य, नई स्ट्रिंग [] {"तालिका"}) विधि का उपयोग करके, जो परिणाम परिणाम देता है। परिणामसेट की अगली() विधि का उपयोग करें, जो किसी भी टेबल मौजूद होने पर परीक्षण करने के लिए एक बूलियन लौटाता है। यदि यह सत्य परीक्षण करता है, तो आपके पास अस्तित्व में तालिकाओं हैं। झूठा, और डेटाबेस खाली है।