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

स्प्रिंग JDBC + SQL + Java 8 को पोस्टग्रेज करता है - लोकलडेट से/में रूपांतरण

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 फ्रेमवर्क का सवाल है, मुझे लगता है कि इसके व्यवहार को ओवरराइड करने से बाद में पछतावे के बिना इसे दूर करने का काम होता है। आपने जो पहले ही किया है, उसके लिए मैं थोड़ा अलग दृष्टिकोण सुझाता हूं:

  1. विस्तार करें BeanPropertySqlParameterSource नई तिथि और समय एपीआई के साथ काम करने के लिए व्यवहार, और यदि आवश्यक हो तो पैरामीटर इनपुट से जुड़े अन्य वर्ग (मैं उस स्प्रिंग एपीआई से परिचित नहीं हूं)।
  2. BeanPropertyRowMapper के पहले से ओवरराइड किए गए व्यवहार को निकालें संचालन लाने के लिए किसी अन्य वर्ग के लिए।
  3. इसे फ़ैक्टरी पैटर्न या उपयोगिता वर्ग के साथ पूरा करें ताकि आपको इसे दोबारा न देखना पड़े।

यदि एपीआई समर्थित हो जाता है और विकास के दौरान आवश्यक कोड की मात्रा कम कर देता है तो इस तरह आप भविष्य की रिफैक्टरिंग क्षमताओं को बढ़ाते हैं।

आप कुछ DAO भी देख सकते हैं। दृष्टिकोण।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जेपीए नेटिव क्वेरी डबल या बिगडेसिमल लौटाती है

  2. PostgreSQL के लिए रिमोट कनेक्शन कैसे सेटअप करें

  3. एसक्यूएल और रिलेशनल बीजगणित में कॉलम ऑर्डर के बावजूद केवल एक बार टुपल की प्रत्येक जोड़ी को कैसे सूचीबद्ध करें?

  4. किसी उपयोगकर्ता को किसी फ़ंक्शन को बदलने की अनुमति दें

  5. SQL 30 दिनों से पुराने सभी रिकॉर्ड प्राप्त करें