2010-03-30 7 views
7

जेडीबीसी ResultSet getObject, getInt, getString इत्यादि प्रदान करता है, और PreparedStatement समान सेटर्स हैं। टाइप संकलन-समय प्रकार की सुरक्षा के अलावा, टाइप करें विशिष्ट गेटर्स/सेटर्स के पास कोई (डी) फायदे हैं, या यह हर जगह getObject/setObject का उपयोग करना ठीक है?जेडीबीसी get/setObject बनाम प्राप्त/सेट स्पेसिफिक टाइप

उत्तर

5

कोई वास्तविक तकनीकी (डी) फायदे नहीं हैं। यदि आप बाद में टाइपशेकिंग/कास्टिंग कर रहे हैं तो वे केवल कार्यात्मक रूप से हानिकारक हो सकते हैं।

मैं अपने आप को ResultSet#getObject() का उपयोग केवल जब दिए गए मान एक आदिम जो NULL को डीबी चूक और घोषित मूल्य आदिम के लिए एक आवरण है है। जैसे Integer age:

user.setAge(resultSet.getObject("age") != null ? resultSet.getInt("age") : null); 

और मैं PreparedStatement#setObject() का उपयोग व्यावहारिक रूप से हर समय, एक उपयोगिता विधि में:

public static void setValues(PreparedStatement preparedStatement, Object... values) throws SQLException { 
    for (int i = 0; i < values.length; i++) { 
     preparedStatement.setObject(i + 1, values[i]); 
    } 
} 
संबंधित मुद्दे