2012-09-30 19 views
5

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

धन्यवाद

उत्तर

3

PrepardStatements शर्तों के चर संख्या का समर्थन नहीं करते। कुछ ढांचे क्या करते हैं, क्या वे एक मानचित्र में प्रत्येक तैयार स्थिति को कैश करते हैं जहां कुंजी क्वेरी होती है।

इसलिए प्रत्येक बार जब आप कोई क्वेरी चलाने के लिए चाहते हैं, तो आपको तैयार किए गए स्टेटमेंट को बनाने के लिए स्ट्रिंग बनाने की आवश्यकता है, जांच करें कि क्या आपके पास मानचित्र में है (और इसका पुन: उपयोग करें) या नया बनाएं, और इसे मानचित्र में जोड़ें ।

4

यदि आप स्ट्रिंगबिल्डर (स्ट्रिंगबफर अगर इसके बहुप्रचारित env।) का उपयोग करते हैं और आपकी परिस्थितियों के आधार पर आपकी परिस्थितियों के आधार पर चलाने के दौरान समय चलाने के दौरान चर की संख्या को जोड़ना चाहते हैं।

तरह
StringBuilder query = new StringBuilder("Select id, name from Student "); 


if(args >0) 
{ 
    query.append(" where "); //and add more args. 

और बाद में इसे स्ट्रिंग

PrepareStatement(query.toString()); 
+0

को परिवर्तित करके इस प्रश्न के साथ तैयार बयान बनाने के खबरदार: यह कोड SQL इंजेक्शन के लिए अतिसंवेदनशील है। – rook

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