2012-03-06 10 views
11

मैं वर्तमान में एक रेस्तरां के लिए एक पोर्टल आवेदन पर काम कर रहा हूं। बैकएंड डेटाबेस का इस्तेमाल माइस्क्ल है और मैं डाटा एक्सेस लॉजिक लिखने के लिए स्प्रिंग जेडीबीसी समर्थन का उपयोग कर रहा हूं।MySQL में अस्थायी प्रक्रियाएं कैसे बनाएं?

मेरे कुछ डीएओ कई प्रश्नों से अव्यवस्थित हैं और आकार में हजारों लाइन कोड प्राप्त कर रहे हैं। मुझे लगता है कि मैं अपने कुछ तर्क को एसक्यूएल-पीएसएम प्रक्रिया में ले जाकर आकार और जटिलता को कम कर सकता हूं (चूंकि जावा में डेटा बाध्यकारी और गोंद कोड नरक से घृणित है)।

हालांकि मेरे पास डीबी पर डीडीएल अधिकार नहीं हैं और इसलिए प्रक्रिया नहीं बना सकते हैं।

मैं सोच रहा था कि क्या एक डिस्कार्ड-सक्षम \ अस्थायी प्रक्रिया बनाने का कोई तरीका है जिसे आप सीधे इसे बनाने के बिना डीएमएल कथन की तरह निष्पादित कर सकते हैं।

यानी मैं एक प्रक्रिया कम से कम एक प्रक्रिया चाहता हूं, जो मेरा काम करेगा, परिणाम वापस कर देगा और गायब हो जाएगा।

इसे बहुत गुमराह किया लेकिन कुछ भी नहीं मिला। : '(बस सोच रहा है कि क्या आप लोगों को एक सुरुचिपूर्ण समाधान पता है।

+1

मेरे पास भी नहीं है डीबी में पीएसएम को सक्षम करने में एक कहते हैं, टीम को ओआरएम को अपनाने के लिए अकेले रहने दें। :-(मैंने अन्य तरीकों से जटिलता को कम करने का फैसला किया है जैसे कि अलग-अलग स्प्रिंग कॉन्फ़िगरेशन फ़ाइलों आदि में मेरे प्रश्नों को बाहरी करना। सभी कारणों के लिए धन्यवाद .-) –

+0

क्या आपने टेक्स्ट फ़ाइल से SQL स्टेटमेंट निष्पादित करने का प्रयास किया है [लिंक] (http://dev.mysql.com/doc/refman/5.0/en/batch-commands.html) –

उत्तर

11

मुझे लगता है कि आप अनाम कोड ब्लॉक/गुमनाम प्रक्रियाओं। दुर्भाग्य से यह MySQL में समर्थित नहीं है

(यह "बड़ी" इस तरह के ओरेकल या Sybase रूप RDBMSs में समर्थित है) के लिए देख रहे हैं

मैं कुछ ओआरएम ढांचे का उपयोग करने पर विचार करता हूं, लेकिन मैं जावा डेवलपर नहीं हूं, इसलिए मैं उनमें से किसी की भी सिफारिश नहीं कर सकता।

+0

बिल्कुल! बेनामी कोड ब्लॉक। दुख की बात है कि MySQL को उनके लिए समर्थन नहीं है .. :-(आश्चर्यचकित करना मेरे स्पेगेटी डीएओ के बारे में क्या करना है। –

+1

यदि आप पहले से ही उन्हें बना सकते हैं, तो आप अभी भी काम के हिस्से को करने के लिए नियमित प्रक्रियाओं का उपयोग कर सकते हैं। – Salandur

2

मुझे नहीं लगता कि आप कर सकते हैं। मेरी सिफारिश जावा में "संग्रहीत प्रक्रिया" बनाना होगा। एक तरीका लिखें जो आपके इनपुट लेता है, प्रश्न पूछता है और गणना, तो डाटासेट देता है।

+0

यह समस्या नहीं है। मेरे पास जावा में पहले से ही कोड है। मुद्दा यह है कि जब जावा संबंधपरक तालिकाओं में डेटा हेरफेर की बात आती है तो जावा एसक्यूएल-पीएसएम के साथ प्रतिस्पर्धा नहीं कर सकता है। कोड को आधे आकार में घटाया जा सकता है। –

+0

@MonikaMichael आप अभी भी क्वेरी चलाकर डीबी पक्ष पर डेटा मैनिपुलेशन कर सकते हैं, है ना? बस MySQL SP के बजाय जावा विधि में प्रश्नों को लपेटें। मैं आपके द्वारा उपयोग किए जा रहे जेडीबीसी के बारे में बहुत कुछ नहीं जानता, लेकिन किसी भी आधुनिक डीबी अबास्ट्रक्शन में बहु-क्वेरी समर्थन शामिल होना चाहिए। –

संबंधित मुद्दे