JDBC के साथ नई दिनांक और दिनांक API समर्थन JEP 170:JDBC 4.2 द्वारा परिभाषित किया गया है। . पोस्टग्रेज डाउनलोड पेज JDBC 4.2 नई सुविधाओं के साथ संगतता केवल Postgres संस्करण 9.4 से शुरू होती है, इसलिए पुराने ड्राइवरों के साथ नए API का उपयोग करके कुछ संगतता चुनौतियाँ सामने आएंगी।
यहां तक कि setObject(1, new java.util.Date());
Postgres (जिसे MySQL द्वारा खुशी से स्वीकार किया जाता है) में उसी बाधा से खारिज कर दिया गया है, न केवल LocalDate
जैसे नए API से। . कुछ व्यवहार कार्यान्वयन पर निर्भर होंगे, इसलिए केवल java.sql.*
बहुत अधिक गारंटी है (मोटे तौर पर बोल रहा हूँ)।
जहाँ तक स्प्रिंग JDBC फ्रेमवर्क का सवाल है, मुझे लगता है कि इसके व्यवहार को ओवरराइड करने से बाद में पछतावे के बिना इसे दूर करने का काम होता है। आपने जो पहले ही किया है, उसके लिए मैं थोड़ा अलग दृष्टिकोण सुझाता हूं:
- विस्तार करें
BeanPropertySqlParameterSource
नई तिथि और समय एपीआई के साथ काम करने के लिए व्यवहार, और यदि आवश्यक हो तो पैरामीटर इनपुट से जुड़े अन्य वर्ग (मैं उस स्प्रिंग एपीआई से परिचित नहीं हूं)। BeanPropertyRowMapper
के पहले से ओवरराइड किए गए व्यवहार को निकालें संचालन लाने के लिए किसी अन्य वर्ग के लिए।- इसे फ़ैक्टरी पैटर्न या उपयोगिता वर्ग के साथ पूरा करें ताकि आपको इसे दोबारा न देखना पड़े।
यदि एपीआई समर्थित हो जाता है और विकास के दौरान आवश्यक कोड की मात्रा कम कर देता है तो इस तरह आप भविष्य की रिफैक्टरिंग क्षमताओं को बढ़ाते हैं।
आप कुछ DAO भी देख सकते हैं। दृष्टिकोण।