विभिन्न डेटाबेस सर्वर पहचानकर्ताओं को उद्धृत करने और भागने के विभिन्न तरीकों का उपयोग करते हैं।जेडीबीसी के साथ कॉलम नाम जैसे पहचानकर्ताओं को उद्धृत/भागने के लिए कैसे?
उदा। "फू बार" बनाम 'फू बार' बनाम [फू बार], या "10" "बनाम" 10 \ "", या फ़ूबार या सरणी जैसे पहचानकर्ताओं को कुछ डेटाबेस के लिए उद्धृत करने की आवश्यकता है, लेकिन दूसरों के लिए नहीं।
क्या कोई एपीआई विधि है जो दिए गए डेटाबेस कनेक्शन के लिए उद्धरण/एस्केपिंग सही तरीके से करती है? या कोई वैकल्पिक समाधान?
डेटाबेस तटस्थ नाम है, लेकिन आश्चर्य के बारे में अच्छी बात हो सकती है अभी भी दिखाई दे सकता है (उदाहरण के लिए एक निश्चित पहचानकर्ता किसी अन्य डेटाबेस में स्वीकार्य नहीं हो सकता है)। इसके अलावा, अगर मैं हूं तो वास्तव में एक ओआरएम लिख रहा हूं? क्या प्रत्येक समर्थित डेटाबेस के लिए इसे एक अलग हाथ से कोडित उद्धरण/भागने के कार्यान्वयन की आवश्यकता होगी? – aditsu
SQL मानक में पहचानकर्ता नामकरण के लिए नियमों पर चिपकाएं। वे कहीं भी काम करेंगे। –
@ पॉल टॉम्बलिन हे, हाँ, "मानक"। कल्पना में बहुत सारी लचीलापन है - और विक्रेता अपने स्वयं के कीवर्ड और आरक्षित शब्द जोड़ते हैं, जिन्हें एप्लिकेशन का उपयोग करने के लिए उद्धृत किया जाना चाहिए। मैं मानता हूं कि spec से चिपकने का प्रयास करना कम से कम दर्दनाक विकल्प है, लेकिन यह * बेकार * है कि जेडीबीसी एक 'java.sql.Connection.quoteIdentifier (...) 'या' DatabaseMetaData.quoteIdentifier (...) 'विधि और समर्थन एसपीआई, क्योंकि इसका मतलब है कि आप हमेशा आरक्षित शब्द नृत्य कर रहे हैं। 'getIdentifierQuoteString' नौकरी नहीं करता है, यह उद्धरण नियमों को व्यक्त नहीं करता है। –