Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

जावा और एसक्यूएल:वापसी शून्य या अपवाद फेंक दें?

मैं निम्नलिखित से बचूंगा

   sql.append("SELECT * FROM ").append("dogs_table");
   sql.append(" WHERE ").append(colName).append("='");
                        sql.append(colValue).append("'");

और इसके बजाय PreparedStatement का उपयोग करें इसके संबंधित पैरामीटर सेटर विधियों के साथ (setString() ) आदि। यह colValue . के मानों के साथ समस्याओं को रोकेगा उद्धरण, और SQL इंजेक्शन हमले (या अधिक सामान्यतः, colValue कुछ SQL सिंटैक्स बनाना)।

मैं कभी नहीं यदि संग्रह केवल खाली था तो एक शून्य लौटाएं। यह क्लाइंट के दृष्टिकोण से बहुत ही प्रति-सहज, और पूरी तरह से अप्रत्याशित लगता है।

मैं त्रुटि स्थितियों में शून्य वापस करने की अनुशंसा नहीं करता, क्योंकि आपके क्लाइंट को स्पष्ट रूप से इसकी जांच करनी है (और शायद भूल जाएगी)। यदि आवश्यक हो तो मैं एक खाली संग्रह वापस कर दूंगा (यह आपकी टिप्पणी के समान हो सकता है। एक शून्य वस्तु), या अधिक संभावना है कि अपवाद फेंक दें (परिस्थितियों और गंभीरता के आधार पर)। अपवाद इस मायने में उपयोगी है कि इसमें सामने आई त्रुटि से संबंधित कुछ जानकारी होगी। नल आपको कुछ नहीं बताता।

Dog . बनाने के दौरान यदि कोई समस्या आती है तो आपको क्या करना चाहिए? वस्तु ? मुझे लगता है कि यह इस बात पर निर्भर करता है कि आप अपने आवेदन को कितना मजबूत और लचीला बनाना चाहते हैं। क्या Dog . का उपसमुच्चय लौटाने में समस्या है? या यह पूरी तरह से विनाशकारी होगा और आपको इसकी रिपोर्ट करने की आवश्यकता है? यह एक आवेदन आवश्यकता है (मुझे अतीत में किसी भी परिदृश्य को पूरा करना पड़ा है - सर्वोत्तम-प्रयास या सभी या कुछ नहीं )।

अवलोकन के एक जोड़े। मैं HashMap का उपयोग करूंगा। पुराने Hashtable . के बजाय (सभी एक्सेस के लिए सिंक्रोनाइज़ किया गया है और इससे भी महत्वपूर्ण बात यह है कि उचित Collection नहीं है - अगर आपके पास Collection है आप इसे किसी भी . की अपेक्षा करने वाली किसी अन्य विधि से पास कर सकते हैं Collection ), और StringBuilder StringBuffer से अधिक समान कारणों से। कोई बड़ी समस्या नहीं है, लेकिन जानने लायक है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL - 66 KBytes की पंक्ति आकार सीमा को कैसे हल करें

  2. परिवर्तन के लिए mysql की निगरानी करना

  3. पीडीओ क्या है, यह एसक्यूएल इंजेक्शन से कैसे संबंधित है, और मुझे इसका उपयोग क्यों करना चाहिए?

  4. क्वेरी के माध्यम से SQL कॉलम शीर्षक बदलना

  5. MySQL में डेटाटाइम फ़ील्ड में NULL मान कैसे स्टोर करें?