2010-04-01 13 views
9

मैं कक्षा के लिए एक समूह परियोजना पर काम कर रहा हूं और हम चेकस्टाइल को आजमा रहे हैं।जेडीबीसी प्रश्नों में चेकस्टाइल जादू संख्या त्रुटियों से बचें

मैं जावा के साथ काफी सहज हूं लेकिन कभी भी जेडीबीसी को छुआ नहीं है या इससे पहले कोई डेटाबेस काम नहीं किया है।

अगर वहाँ एक सुंदर तरीका preparedStatement कॉल में जादुई संख्या त्रुटियों से बचने के है मैं सोच रहा था, पर विचार करें:

 preparedStatement = connect.prepareStatement("INSERT INTO shows " 
       + "(showid, showtitle, showinfo, genre, youtube)" 
       + "values (default, ?, ?, ?, ?);"); 
     preparedStatement.setString(1, title); 
     preparedStatement.setString(2, info); 
     preparedStatement.setString(3, genre); 
     preparedStatement.setString(4, youtube); 
     result = preparedStatement.executeUpdate(); 

setString तरीकों जादू संख्या के रूप में चिह्नित करने के लिए, अब तक मैं सिर्फ संख्या जोड़ा 3-10 या तो जादू संख्याओं के लिए अनदेखा सूची में, लेकिन मैं सोच रहा था कि क्या उन मानों को कथन में डालने के बारे में बेहतर तरीका था। मैं आपको उस कोड को देखने में दिमाग में आने वाली किसी भी अन्य सलाह के लिए भी विनती करता हूं, मैं किसी भी बुरी आदतों को विकसित करने से बचना चाहता हूं, उदाहरण के लिए क्या मुझे स्टेटमेंट का उपयोग करना चाहिए या तैयार किया गया है ठीक है? क्या इससे मुझे कॉलम नामों का संदर्भ मिलेगा? क्या यह आदर्श है? आदि ...

धन्यवाद!

+0

साइड-नोट के रूप में, यह भी जानना उपयोगी होगा कि डेटा को पुनर्प्राप्त करते समय जादू संख्याओं से कैसे बचें - यानी 'getString() 'आदि –

उत्तर

12

एक उपयोगिता विधि है जो कुछ इस तरह करता है बनाएँ:

public static void setValues(PreparedStatement preparedStatement, Object... values) throws SQLException { 
    for (int i = 0; i < values.length; i++) { 
     preparedStatement.setObject(i + 1, values[i]); 
    } 
} 

और इसका इस्तेमाल करते हैं इस प्रकार है: के संबंध में

setValues(preparedStatement, title, info, genre, youtube); 

या

Object[] values = { 
    title, info, genre, youtube 
}; 

setValues(preparedStatement, values); 

अधिक "सर्वोत्तम प्रथाओं" मूल जेडीबीसी कोडिंग this article में पाया जा सकता है।

उम्मीद है कि इससे मदद मिलती है।

+0

यह बहुत बढ़िया है, बहुत बहुत धन्यवाद! – Dan

2

मैं सुझाव दूंगा कि यदि आप वसंत का उपयोग नहीं करते हैं, तो इसके बजाय NamedParameterJdbcTemplate का उपयोग करने का प्रयास करें। इसका उपयोग कैसे करें इसके ट्यूटोरियल के लिए http://www.dzone.com/tutorials/java/spring/spring-named-parameter-jdbc-template.html पर एक नज़र डालें।